2008年11月3日(月曜日)
セキュアなPHPアプリケーションを作成するための7つの習慣
公開: 2024年12月21日18時15分頃
徳丸さんツッコミシリーズ、「セキュアなPHPアプリケーションを作成するための7つの習慣」のサンプルがとんでもなく酷い (d.hatena.ne.jp)。「セキュアな PHP アプリケーションを作成するための 7 つの習慣 (www.ibm.com)」のサンプルコードがあんまりだというお話ですね。
個人的には、CSRFのサンプルコードが印象的でした。前置きとしてこう書かれていて……。
CSRF から保護するためには、フォームの投稿を検証するための習慣で使用する、ワンタイム・トークンによる手法を使います。また、$_REQUEST ではなく、明示的な $_POST 変数を使う必要があります。
まあ、この記述の前半はそんなに間違っていないのですが、後半は微妙なところですね。何度も言っているような気がしますが、「$_REQUEST ではなく、明示的な $_POST 変数を使う」という手法は、CSRFの対策としては不十分です。
かつて実際にmixiがCSRFで攻撃され、意図しない日記が書き込まれてしまうという被害が発生したことがあります。そのときの攻撃は、POSTリクエストを送るものでした。「$_POST 変数を使う」とすればGETによる攻撃を防げますが、POSTで攻撃するのは簡単ですし、実際にPOSTで攻撃されたケースがあるわけで、根本的なCSRF対策にはならないのです。
そして、サンプルコードとして掲載されているのは、その「$_POST 変数を使う」例だけです。対策として有効なのは「ワンタイム・トークンによる手法」の方なのですが、肝心なこちらについてはサンプルが全くないという……。
- 「セキュアなPHPアプリケーションを作成するための7つの習慣」へのコメント (1件)
bakera.jpシステムリニューアル その3
公開: 2024年12月21日16時30分頃
バグ対応続き。
- 用語集の古いURLから新しいURLにリダイレクトするところがバグっていて単にNotFoundになっていたので修正。
- コードを若干ブラッシュアップ。不要なクラスを削除したりした。
しかし今気づきましたが、http://bakera.jp/glossary/svchost.exeというURLは、変なexeがダウンロードされそうに見えて少し気持ち悪いかも。
関連する話題: bakera.jp / hatomaru.dll
- 前(古い): 2008年11月2日(Sunday)のえび日記
- 次(新しい): 2008年11月4日(Tuesday)のえび日記