ウェブアプリケーション セキュリティ
最近、ウェブアプリケーション セキュリティ周りについて勉強してる。
とりあえず、『PHPサイバーテロの技法―攻撃と防御の実際』はイイ! PHP 以外でも使えます。既知の攻撃方法14種を具体的に体感できるのがいいなぁ。これで1800円は安いよ! 「やってみよう」が telnet 手打ちってところがいいなぁ(ファイルアップロード攻撃まで!)。
今 Rails 上で試してみてるんですが、PHP の特有の設定や関数で防御してるところをどうしようかなぁ……。うーん。ActiveRecord のコードをざっと追った限り、SQL Injection まわりは問題なさそう。ほぼ全てのメソッドにエスケープ処理が入っているんで。:condition 等では必ずバインド変数(プレースホルダ ? でもいいし、名前付きバインド変数 :hoge でもいい)を使いましょう。注意するところは find_by_sql、LIKE 条件ぐらいかな。あと、LIKE 条件を安全に作るメソッドがあってもいいかも。既にある?
OWASP の「安全な Web アプリケーション構築の手引き」も読む。貪欲に読む。こっちはもうちょっと俯瞰的に見た概要って感じ。
『Webアプリセキュリティ対策入門 ~あなたのサイトは大丈夫?』も買っちゃった。今日届くはず。
あ、そうそう、咳さんが ERB にデフォルトで HTML エスケープする機能を追加してみましたけど効果はいかほどか?正直わからん。というようなことを言っていましたけど、XSS や Script Insertion といった脆弱性は、ウェブアプリでかなりの割合を占める HTML 描画部分で起こるので、これらを防げるのは大きいと思います。
あと、反応が余りないなぁ、と言ってましたが、咳さんのサイトはいっぱいあって(mixi、はてな、I like Ruby.)完全に補足できてないからだと思います。1個パブリックな Blog かなんかに咳プロダクツの全ての更新情報が集約されてると嬉しいんですけど。(Wiki はヲチするにはちと辛い……)