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のお問い合わせからお気軽にご連絡ください。新規開発やリニューアルはもちろん昔作ったけれど手つかずになってしまっているプログラムの修正まで、ちょっとしたご相談にも丁寧に対応します。
最近の記事
-
GoogleAnalyticsを活用しませんか?
カテゴリ:コネクト動画コンテンツ 更新:2024-11-05 -
明日より「フリーランス・事業者感取引適正化等法」スタートです
カテゴリ:コネクト動画コンテンツ 更新:2024-10-31 -
「GiveWP」を使用している方はすぐに確認!
カテゴリ:コネクト動画コンテンツ 更新:2024-10-01 -
身近でも起こりうる、不正アクセスの原因とは
カテゴリ:コネクト動画コンテンツ 更新:2024-09-10 -
SakanaAIって知ってますか?
カテゴリ:コネクト動画コンテンツ 更新:2024-09-05
更新担当者
- チータ
WEBサービス・システム開発担当 - タク
写真撮影・動画制作担当 - コーイチ
AI研究者