Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

CgiSecure

1,023 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

CgiSecure

  1. 1. CGIに潜むセキュリティーホール ID: @kanayannet2010年8月21日土曜日
  2. 2. こんなCGI達を配布しています2010年8月21日土曜日
  3. 3. 今回は WEB QUIZ version 1.5 のお話2010年8月21日土曜日
  4. 4. version 1 シリーズの経緯 - 自分がまだ、接客業時代に作成開始。 - プロとして経験がなかったので、かなりヘッポコ(?)コード - C言語で言うと。。main(){。。。。} 以上終了状態 (関数で細かく分かれていない。) - 当然、関数毎に細かくテストコード書くなんてのもやっていない。 - 動いて使ってもらえれば万歳。 - 当時の自分の身の回り(従業員)にアタックをする「悪い子 (!?)」はいなかった。2010年8月21日土曜日
  5. 5. 悪い子 どうしよう(汗) ※注意:ナマハゲは使えません(汗)2010年8月21日土曜日
  6. 6. 大抵のWEBアプリは 表示 → ソース でHTMLを解析できる。 という事は。。「どこをどう偽造すれば次どうなるか?」 予想できる2010年8月21日土曜日
  7. 7. 実際にソースを見ながら操作してみます。2010年8月21日土曜日
  8. 8. 「○○秒→1秒になるかな∼∼?」2010年8月21日土曜日
  9. 9. 「偽装できましたね。」2010年8月21日土曜日
  10. 10. という事で。。。。 ver 1.x シリーズ終了のお知らせ2010年8月21日土曜日
  11. 11. ver 2.0 はこうしました。 - 偽装されてはいけない情報は「サーバの中で保存」   - クイズ開始の時間   - ユーザID   - 何問正解したか?   - 何問まで進んだか? - 解析しずらくしてしまおう   - HTMLに出力するのは最低限   - Ajax 使ってしまおう   - Prototype.js を使いました。   (Jquery でも十分いけます。)   - 結果として、UIも使い勝手が良くなります。2010年8月21日土曜日
  12. 12. ここで注意! 「Ajax だけで十分じゃね?」 -「HTTP」の通信を解析されるとバレます。   - 当然 Cookie もばれます。 - FireFox Live HTTP Header など2010年8月21日土曜日
  13. 13. そんな HTML 隠すだけなど!! 貧弱、貧弱∼∼∼!!2010年8月21日土曜日
  14. 14. 認証データ コントローラ  1タイムパス(ユーザID) HTTP引数をモデルやViewに渡す  正解数  何問まで回答したか  回答開始時間 モデル データファイルの クイズ実行処理 クイズ問題データ read/write ランキングデータ View  解答時間  HTML出力  ユーザ名2010年8月21日土曜日
  15. 15. 何故、MVCかって?? 「坊や。。もとい、リファクタが楽 だからさ」2010年8月21日土曜日
  16. 16. 単体テストに便利なツールありますねw - Ruby: Rspec - Perl: Test::Simple - PHP: PHPUnit , SimpleTest 私的感想: これら自体は動作保証を目的とするものでは ないが。。。結果として、バグの早期発見、早 期リファクタに繋がり動作保証に持って行きや すさを秘めている思う。 (全部ベタ書きでは、こうはいかない。)2010年8月21日土曜日
  17. 17. 完成品お披露目2010年8月21日土曜日
  18. 18. ご清聴、ありがとうございました2010年8月21日土曜日

×