CakePHPでCSRF対策を行う方法です。 フレームワークに含まれているSecurityコンポーネントを使います。 Security#requestAuth()にアクションを記述しておくと、アクショ...
昨日の日記で、DK祭りで使われている脆弱性がXSSかCSRFかという問題になった。どうも、XSSとCSRFがごっちゃになっている人もいるように見受けるので、簡単な整理を試みたい。 XSSとCSRFには似た点がある。 どちらも「クロスサイト」という言葉が先頭につく なりすましのようなことが結果としてできる どちらも受動型攻撃である それに対して、もちろん違う点もある。専門家から...
ここらへんは設定の問題や、回避処理を忘れずに入れておけば問題ないのだけど、HTTPからHTTPS、HTTPSからHTTPへのセッションの移行とかが必要になるとちょっと別口の方法を用意しておかないと簡単には実現できない。ようわ、 HTTP中をセッションID12345で移動しているとして、 SSLに移行時には同じIDが危険なので67890に変更する ただ、Cookieにsecureフラグが...
もし、scirpt タグや style タグ内でこれらの文字が無くても実行可能な Javascript が入力できる場合、クロスサイトスクリプティングに対処したことにはなりません。どうしてもその必要がある場合は、Javascript として実行されそうな文字列を削除するなど、非常に複雑な処理が必要になります。 例えば、以下のような場合でも Javascript を実行するブラウザがあります。 <style type="text...
Googleは米国時間7月1日、ウェブ開発者がクロスサイト脆弱性を発見し、修正するためのツールをリリースした。 Googleによると、「RatProxy」と呼ばれるこの無料ツールは、半自動化された大部分が受動型のウェブアプリケーションセキュリティ監視ツールで、複雑なWeb 2.0環境における既存のユーザー主導型トラフィックの監視に基づく潜在的問題およびセキュリティ関連の設計パ...
【PHP TIPS】 58. すごいリロード対策 紹介されているのはシンプルなワンタイムトークン. 単純なリロード対策であれば ticket の値は乱数でなくても良い.ここを乱数にすることで CSRF 対策も兼ねている.ただこの方法は,場合によってはフォームを正常に送信できなくなってしまう問題がある. 例えば,入力画面→入力確認画面と遷移してから別のウィンドウで入力画面→入力確...
ウェブアプリケーション開発者の立場から見たCSRF対策について、さまざまな情報が入り乱れている。筆者が2006年3月の時点において国内のウェブサイトやコンピュータ書籍・雑誌などでCSRF対策について書かれている記事を調べた結果、おどろくべきことに、そのほとんどが誤りを含んでいたり、現実的には使用できない方法を紹介したりしていた。そこで本稿ではウェブアプリケ...
諸君 私は脆弱性が好きだ諸君 私は脆弱性が大好きだPHPが好きだXSSが好きだSQLインジェクションが好きだCSRFが好きだUTF-7が好きだexpressionが好きだシェアウェアでWebでGoogleでスペシャルねこまんまでLiveHTTPでFilemonでRegmonでOllyDbgでPerlでこの地上に存在するありとあらゆる脆弱性が大好きだセキュリティに関して口うるさく言っているサイトの脆弱性をいとも簡単に見つけるのが好...
GNUCitizenによると CSRF - It comes very handy. It seams that no matter how much you talk about it, very few pay attention on the problem. And it is not a problem that you can afford to have. And among the XSS issues, which most OpenID libraries have, CSRF (Cross-site Request Forgery) seams to be the most pervasive form of attack. http://www.gnucitizen.org/blog/hijacking-openid-enabled-accounts とほとんどのOpenIDのライブラリはCSRFに脆弱だそうです。 tiny problemと書いてありま...
図中の六角形はサーバ側のオブジェクトを表す。「登録情報編集」画面で入力されたデータが「確認」ボタンでサーバに送信されたとき、サーバは「様式検査」の処理の前に、入力データをサーバ側オブジェクトに記憶し、その後の処理ではこのオブジェクトの値を参照して実行するようにする。プレビュー画面の出力や、プレビュー画面で「保存」ボタンを押したときの「DB書...