日々の生活や仕事やWebや美術館や育児など。2009.10.30百式さんのブログIDEA*IDEAの記事「CakePHPのAuthComponentではまったところ」から、以前に小生が「人力検索はてな」でした質問にリンクされた記念(同じ問題に直面したようで嬉しい)として、CakePHPのセキュリティ対策について途中までまとめて放置していたメモをアップします。—CakePHPで開発した「30日ブログ」は、不特定多数が利用するウェブアプリケーションであるためセキュリティ対策にはかなり気を使いました(一応ウェブディレクターの端くれとしてもこの辺は慎重に)。ウェブアプリケーションの一般的な脆弱性については、CakePHPがある程度まで自動的に処理してくれます(フレームワークの素晴らしいメリット)。そこでCakePHPと代表的な脆弱性3つについてまとめました。●SQLインジェクション・概要:ユーザーが任意のSQLを実行できデータベースが不正操作される。価格.comが昔くらった。・PHPの対策:入力値をエスケープする。DBごとに関数が異なるので使い分ける〔mysql_real_escape_string(),pg_escape_string()〕。・CakePHPの対策:findやreadなどの組込関数は自動処理されるので対策不要。自分でSQLを組み立てて実行している場合はセオリー通りの対策が必要。●クロスサイト・スクリプティング(XSS)・概要:ユーザー入力がそのままHTMLに表示され任意のコードが実行される。・PHPの対策:HTML出力時にサニタイジングする〔htmlspecialchars($str,ENT_QUOTES)〕。・CakePHPの対策:viewでサニタイジングする。echoも含めてe(h($value))で覚えよう。●クロスサイト・リクエスト・フォージェリ(CSRF)・概要:管理者権限をもつユーザーにURLをクリックさせて不正な操作を強いる。・PHPの対策:ワンタイムチケットを発行する。今回CakePHPで開発していてMVCモデルを採用するCakePHPはCSRFの脆弱性が生じやすいのではと思いました(素人の感想です)。MVCモデルではhttp://example.co.jp/モデル/コントローラ/パラメータとなりますが、プログラムの作り方によってはhttp://example.co.jp/user/delete/1というURLをクリックすることでuser_id=1が削除されてしまいます。href=http://example.co.jp/user/delete/1>エロ動画</a>なんでリンクを思い余ってクリックしたら、ログイン状態が継続している場合は同様に実行されてしまうのです。CakePHPでの対策方法を調べると色々あるのですが、急に敷居が上がってしまい、また同一ページ内に複数のフォームがあった場合にSecurityコンポーネントがうまく動きませんでした。Japan(小生は無理やりな対策を施しましたが現在のバージョンでは正式な対応方法があるのでしょうか?)CakePHPだからCSRFが危険と言うわけではないですが、参考書通りに作成すると危ないなーと感じた次第です。—フレームワークのメリットはアプリケーションの機能に集中して開発ができるところだと考えています。CakePHPもセキュリティ面をカバーしてくれるので安心して開発ができました。セキュリティの専門家に怒られそうですが・・・。関連記事iphone・携帯702NKIIの画面キャプチャ。702NKIIネタの連投となります。前の記事(702NKIIでネットとつながる。)とまとめて一つの記事にする予定でしたが、長くなったのでわけました。ウェブ閲覧以外の702NKIIの特徴的な機能。仕事と言...IT・Web関連iPS細胞の研究に寄付したよ。先日ノーベル医学・生理学賞を取得した山中教授が所長を務めるiPS細胞研究所に寄付をしました。ウェブ企画・Webディレクターとして働いて10年以上。何か制作物をつくるたびに、いつもモヤモヤしていた「著作権」。ウェブ制作では色々な場面で著作権を意識しなければなりません。印刷物に使ったこの写真素材...IT・Web関連702NKIIでネットとつながる。小生が現在使用している携帯電話はvodafoneの702NKIIです。・702NKIIを手に入れた!・702NKIIでBluetoothヘッドセット(待ち受け画面。好きなショートカットアイコンを表示できるのがPDAっぽい)MSドキュメントの...phpPHP講習会私的メモ(第4回・第5回)通っているPHP講習会の私的メモ。何度も繰り返しますが、小生の知識レベルはASP(.NETでない)は基本レベル、Perlをかじった程度です。●SQLiteでDB作成今回よりブログシステムの作成になります。ブログのデ...IT・Web関連ブログを少しカスタマイズした。ブログについて気になっていた箇所をいくつかカスタマイズしました。■ブログのレイアウトを少し変えた3カラムはあまり好きじゃないのですが、サイドメニューが多くなってきたので2列にしました。画面幅を狭くし...スポンサーリンク友人結婚式に出席した。コメントをキャンセルメールアドレスが公開されることはありません。コメント名前メールアドレスサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。ツイート最近の投稿2年半を振り返り2020年を計る生まれて初めてのハワイに行った。WordPressのテーマをSimplicityに変更した。花粉症の究極治療シダトレンによる減感作療法がもうすぐ2年。最近のコメント日本ユニセフ協会に個人情報削除依頼をした。花粉症の究極治療シダトレンによる減感作療法がもうすぐ2年。SIM)を導入した→快適に使える。ウェブ企画・制作と浅い技術のWebディレクター。2級/三児の子育て中。ツイート最近の投稿2年半を振り返り2020年を計る生まれて初めてのハワイに行った。WordPressのテーマをSimplicityに変更した。花粉症の究極治療シダトレンによる減感作療法がもうすぐ2年。最近のコメント日本ユニセフ協会に個人情報削除依頼をした。花粉症の究極治療シダトレンによる減感作療法がもうすぐ2年。SIM)を導入した→快適に使える。ウェブ企画・制作と浅い技術のWebディレクター。2級/三児の子育て中。キーワード検索タイトルとURLをコピーしました。