株式会社コネクト開発雑記帳

【cakePHP】一部ページでCSRFクッキー発行を止める

作成者:チータ
カテゴリ:WEB開発
投稿日:2022/12/10

Cookieについておさらい

WEBシステムを開発する時に便利な機能として、利用者のブラウザに何らかのパラメータを保存してページ遷移の際にその情報を利用し表示を切り替えたり何らかの演算を行うことができるCookieというものがあります。

これは今に始まったものではなく結構前からあるインターネット標準と言ってもいいような技術なのですが、近年のプライバシー保護の観点からホームページやWEBシステム上でcookieを利用する際はどのような情報を送受信しているのかクッキーポリシーとして開示したうえで、合意を得て利用すべきという流れになりつつあるものです。

クッキーポリシーの広まり

国内ではまだ浸透していないものの海外サービスや一部国内でも情報感度の高いサイトを閲覧した時に「このサイトはcookieを利用します」とポップアップが出てきて「はい/いいえ」の選択を求めることがあるのはこの影響と言えます。
(とはいえ多くの場合、とりあえずお伺いをたてているだけで「いいえ」を選択してもポップアップが消えるだけで何も変わらないのですが)

cakePHPから発行されるクッキー

さて、この話題を出したのは前回のエントリーでこのサイトの表示エンジンにcakePHPを使用していると触れたことに関連してのこと。
概ね基本の形ができてきたので読み込み速度の問題やW3C基準でのバリデーションなどパフォーマンス調整を行なっていた際、一般の人が閲覧可能な領域でもcookieが発行されていることに気づいたためです。

発行されていたのはCSRFトークンと呼ばれるもの。
CSRFは「クロスサイト・リクエスト・フォージェリ」の略で一言で言えばサイバー攻撃の一種であり、その対策として合言葉(トークン)を決めておきましょう、というのがこのCSRFトークンです。
ただ、これは何らかの入力フォームやアクセス情報をもとに処理を行っているサイトで必要なものであり、本サイトの一般閲覧ページではそんな細かいことはしていないので正直不要なものですし、相手のブラウザに記憶させてしまう以上使うならクッキポリシーとして明記しておくことが望ましい。。。

標準で発行されるCSRFクッキーを無効化する

ということでシステムからのcookie発行を無効化しようと作業していたのですが、意外とこの手法についての情報って少ないんですよね。
データが送信されてからの合言葉の検証を無効にする方法はいくつかあるものの、発行自体を無効化する手法を解説しているものが日本語サイトだとほとんどないと言っていいかもしれません。

公式ドキュメントにも検証プロセスのスキップ方法は挙がっているんですが、知りたいのはそれじゃないんですよ。
【CSRFプロテクション】
https://book.cakephp.org/4/ja/security/csrf.html#cookiecsrf

仕方ないから自分でソースコードを辿ってみたところ、設定の中で

return $this->_addTokenCookie($token, $request, $response);

と記載された部分からcookieの発行が行われていることがわかったので、一部のコントローラーを介した処理では無効化するように入れたら期待通りの動きになりました。

将来的に何らかのフォームを介したツールでセキュリティにも気をつけた方がいいものを用意する時は有効化してクッキーポリシーも作る予定ですが、当面は気にしないでOKの見込み。

何かデータベースを介するようなサンプルプログラムを置く時は有効化するかも程度です。

ホームページやWEBアプリケーションのご相談はこちら

 ホームページやWEBアプリケーションでお困りごとがございましたら株式会社コネクトHPのお問い合わせからお気軽にご連絡ください。新規開発やリニューアルはもちろん昔作ったけれど手つかずになってしまっているプログラムの修正まで、ちょっとしたご相談にも丁寧に対応します。

コネクトの事業内容はこちらお問い合わせはこちら

ツール一覧

通信チェックアイコン

通信チェック

QRコード生成アイコン

QRコード生成

パスワード生成アイコン

パスワード生成

.htpasswd生成アイコン

.htpasswd生成

JS/CSS最適化アイコン

JS/CSS最適化

JPEG/PNG→Webp変換アイコン

Webp変換

ビンゴツールアイコン

ビンゴツール

2023年開運おみくじアイコン

2023年開運おみくじ

最近の記事

更新担当者

  • チータ
    WEBサービス・システム開発担当
  • タク
    写真撮影・動画制作担当
  • コーイチ
    AI研究者

Copyright © 2022-2024 Connect All Rights Reserved.