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