過去プロジェクトを使うとろくなことがない。
今日のバグ報告。
■不適切なHTMLエンティティ化
DBから取得した値を表示するときに、HTMLエンティティ化している。これはOKなんだけど、DB登録するときにも、値をHTMLエンティティ化していた。ん?何したいん?
&...のオンパレード。こんなデータ、使えるわけねぇ。
■urldecode($_GET['hoge'])
あのぉ...$_GET['hoge']に入った時点で、デコードされてるんですが...意味ないんですけどぉ...
■自力でエスケープ
SQLインジェクション対策?で、自力で¥やシングルクォート、ダブルクォートをエスケープしていた。
これがまた不完全なエスケープでね。\\'でSQL文こけるよ。テストしてねぇだろ。
postgresqlもmysqlもPHPに関数あるんだからさ、そっち使おうよ。
■like検索で全件検索
WHERE句のLIKE組み立てるところで、%と_がエスケープされてない。
LIKE '%%%'じゃ全件検索だろが。
■パラメタ改竄し放題
せめて、下限と上限値のチェックぐらいしようよ。
■二重登録
ブラウザの [ 戻る ] で戻ったときのこと考えてないよ。
[ F5 ] アタックされても知らないぞ。
これらすべて、ほぼすべてのPGで実装されていた。
これ、わけわかってないときに下に作らせて、ノーチェックでリリースしただろ。
短納期・低価格で使いまわすの止めようよ。
質の悪い過去資産しかないんだからさ。
しかも、作った奴は辞めてるし、そのとき仕切ってた奴は我関せずで...
おかげで今日もこんな時間。
さて、今から米研いで寝るか...
今日のバグ報告。
■不適切なHTMLエンティティ化
DBから取得した値を表示するときに、HTMLエンティティ化している。これはOKなんだけど、DB登録するときにも、値をHTMLエンティティ化していた。ん?何したいん?
&...のオンパレード。こんなデータ、使えるわけねぇ。
■urldecode($_GET['hoge'])
あのぉ...$_GET['hoge']に入った時点で、デコードされてるんですが...意味ないんですけどぉ...
■自力でエスケープ
SQLインジェクション対策?で、自力で¥やシングルクォート、ダブルクォートをエスケープしていた。
これがまた不完全なエスケープでね。\\'でSQL文こけるよ。テストしてねぇだろ。
postgresqlもmysqlもPHPに関数あるんだからさ、そっち使おうよ。
■like検索で全件検索
WHERE句のLIKE組み立てるところで、%と_がエスケープされてない。
LIKE '%%%'じゃ全件検索だろが。
■パラメタ改竄し放題
せめて、下限と上限値のチェックぐらいしようよ。
■二重登録
ブラウザの [ 戻る ] で戻ったときのこと考えてないよ。
[ F5 ] アタックされても知らないぞ。
これらすべて、ほぼすべてのPGで実装されていた。
これ、わけわかってないときに下に作らせて、ノーチェックでリリースしただろ。
短納期・低価格で使いまわすの止めようよ。
質の悪い過去資産しかないんだからさ。
しかも、作った奴は辞めてるし、そのとき仕切ってた奴は我関せずで...
おかげで今日もこんな時間。
さて、今から米研いで寝るか...
コメント
コメントを投稿