水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > 2008年のえび日記 > 2008年11月 > 2008年11月3日(月曜日)

2008年11月3日(月曜日)

セキュアなPHPアプリケーションを作成するための7つの習慣

公開: 2024年4月26日18時15分頃

徳丸さんツッコミシリーズ、「セキュアなPHPアプリケーションを作成するための7つの習慣」のサンプルがとんでもなく酷い (d.hatena.ne.jp)。「セキュアな PHP アプリケーションを作成するための 7 つの習慣 (www.ibm.com)」のサンプルコードがあんまりだというお話ですね。

個人的には、CSRFのサンプルコードが印象的でした。前置きとしてこう書かれていて……。

CSRF から保護するためには、フォームの投稿を検証するための習慣で使用する、ワンタイム・トークンによる手法を使います。また、$_REQUEST ではなく、明示的な $_POST 変数を使う必要があります。

以上、セキュアな PHP アプリケーションを作成するための 7 つの習慣 より

まあ、この記述の前半はそんなに間違っていないのですが、後半は微妙なところですね。何度も言っているような気がしますが、「$_REQUEST ではなく、明示的な $_POST 変数を使う」という手法は、CSRFの対策としては不十分です。

かつて実際にmixiがCSRFで攻撃され、意図しない日記が書き込まれてしまうという被害が発生したことがあります。そのときの攻撃は、POSTリクエストを送るものでした。「$_POST 変数を使う」とすればGETによる攻撃を防げますが、POSTで攻撃するのは簡単ですし、実際にPOSTで攻撃されたケースがあるわけで、根本的なCSRF対策にはならないのです。

そして、サンプルコードとして掲載されているのは、その「$_POST 変数を使う」例だけです。対策として有効なのは「ワンタイム・トークンによる手法」の方なのですが、肝心なこちらについてはサンプルが全くないという……。

関連する話題: CSRF / PHP / セキュリティ

bakera.jpシステムリニューアル その3

公開: 2024年4月26日16時30分頃

バグ対応続き。

しかし今気づきましたが、http://bakera.jp/glossary/svchost.exeというURLは、変なexeがダウンロードされそうに見えて少し気持ち悪いかも。

関連する話題: bakera.jp / hatomaru.dll

最近の日記

関わった本など