なんかググるとSQLエラーが引っかかる事がある。
中にはSQL Injectionじゃないのもある。で、気になった事が一つ。
選択肢系の入力だとか、数字しか入らないよ。っていうバリデーションが入ってるのは普通の設計だとおもうんだけど。
異常値が入ってると、その変数を""に置換するコードがはいってるっぽいのよね。
つまり
hoge.php?number=1
ならば
select ~~~where number=1
を実行するけど、
hoge.php?number=a
ならば
select ~~~where number=
を実行して、最後尻切れトンボなSQL吐くから死亡。っての。
うーん、もいっちょだよ。もいっちょ。がばれ。その程度のコードだと学生バイトにも負けちゃうよ。
もいっちょ毛色のちがうやつ。
セッション変数の内容をそのままSQLにつっこんでるけど、セッション切れるとセッション変数がnullになって憤死。
これは、気持ちはわからんでもない。テスト大変だもんね。がばれ。
てか、セッション管理まわりの設計段階でがばれ。
似たような毛色のやつ。
ロボット防止に特定のキーが有ることをSQLで問い合わせてチェックしてるんだけど。。。intenger型と''を比較して憤死。いや~ボットにはエラーみせてもいいって。。google様もボットだぜ。かこわるい。
斜め上な毛色のやつ。
セッションIDが連番なのでgoogle様が連番クロールして、情報漏れ。。。。までは希に聞くお馬鹿な実装。
斜め上な人は、DB内のデータをエスケープせずにつっこんむから昔、バイアグラ商人ボットがつっこんできた「I'll ~~」って文章をDBからひっぱりだして、それをつかってSQLを組み立てて憤死。
バイアグラなんて単語ポストしてねぇ~のになんでエラー表示にバイアグラって出てるか最初わからなかった。。。
結論
ちゃんと異常系も考慮に入れたコード書きましょう。お金をもらって仕事してるなら、異常系のテストもちろっとはしましょう。(Firefox使いならTamper Dataプラグインがおすすめ)
0 件のコメント:
コメントを投稿