CgiSecure

929 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
929
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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日土曜日

×