cookieは漏れないが、HTMLテキスト(hiddenパラメタを含む)は漏れる脆弱性」であり、「hiddenパラメタにcookieと同じセッションIDを入れておくことが新たな脅威を生むことはない」。cookieは漏れないが、hiddenパラメタは漏れ、しかしそれ以外のHTMLテキストは漏れない脆弱性」にあたる。この脆弱性を放置するのであれば、『「セッションIDをそのままhiddenに入れないほうがよい」という理屈は成り立つ』。セッションIDと同じでなかろうと、漏れてしまっては、CSRF対策用トークンの意味がない。ファミリのハッシュ関数あたりを通して」使えばよい。2014-02-19CSRF対策用トークンの値にセッションIDそのものを使ってもいい時代なんて、そもそも無かったHTMLに埋め込まれたCSRF対策用トークンが漏れやすいのであれば、セッションIDと同じでなかろうと、そもそも埋め込むべきではない。「ソーシャルエンジニアリング的な手法」経由のCSRF攻撃なら受けても仕方がない、という判断もありえるだろうが、僕はいやだ。フォーム送信時に、Cookieに保存されたセッションIDをJavaScriptで参照し、パラメータに加えるだけでよい。JavaScript」に書かれているとおり。スクリプトが無効のクライアントには申し訳ないが、それ以外の対策が思いつかない。「CSRF対策用トークンをHTMLに埋め込んでもいい時代は終わりつつある」。2014-02-20Webアプリの開発者が気にすべき点は以下の通り。CookieにHttpOnlyを付けるべきかどうかXSSへの保険的対策として付けるべきXSS脆弱性がなければ問題ないのだから付けなくてよいHTMLへのセッションID埋め込みを避けるべきかどうか漏れやすいから避けるべき漏れにくいから埋め込んで構わないHTMLへのCSRF対策用トークン埋め込みを避けるべきかどうか漏れやすいから避けるべき漏れやすいが影響度は低い(あるいは軽減できる)から埋め込んで構わない漏れにくいから埋め込んで構わない1-1を採るなら、2-1、3-1または3-2を採るのが自然だ。教科書的には、こちらを選ぶしかないように思う。1-2を採る場合、XSS以外によるHTML漏洩の可能性をどのくらい見積もるかによって、2と3の選択肢が変わってくる。漏れやすいと思えば2-1、3-1または3-2、漏れにくいと思えば2-2、3-3。#2まだ論点があるのか。Cookieが漏洩した場合に備えて保険的対策を講じておくべきかどうか漏れやすいから講じるべき漏れやすいが根本的対策はないから(あるいはユーザの利便性を損なうから)講じなくて構わない漏れにくいから講じなくて構わないもう、どうしたらいいのかね。1-1、2-1、3-2、4-2あたりが時代の趨勢なのか。3-2CSRF対策用トークンはHTMLに埋め込むが、セッションIDそのままは不可4-2CookieからのセッションID漏洩は気にしない2014-02-21セキュリティの専門家の間でも見解が分かれてしまうのだから、セキュリティにばかりかまけていられないWebアプリ開発者は、えいや、と自らの信じるところを選ぶしかない。Webセキュリティ、実にめんどうくさい。Iwamoto@iwamotENECHANGE株式会社VPoT兼CTO室マネージャー。Operations)。CODT2024/CNDW2024運営委員。Japan技術サポート。AWS認定とIPA試験の全区分に合格。