PHP登録検証及びフォーム防犯
815 ワード
POST伝達パラメータ
sql文
万能パスワード:
原理:sql文の修正防止:パスワードmd 5暗号化
万能ユーザー名:
原理、#後のすべては実行しません
まとめ:万能ユーザー名とパスワードには特殊な記号、単一引用符が使用されています.単一引用符が意味を失うことを防止するにはaddcslashes:単一引用符がエスケープされます.すべての呼び出しフォーム情報はエスケープされます.
GET伝達パラメータ
sql文:
攻撃パラメータ:
通常はidが強制的に整形に変換されるか、出力変数+0が整数に暗黙的に変換される
sql文
$sql = "SELECT * FROM {$this->table} WHERE admin_name = '$username' AND password = '$password' LIMIT 1";
万能パスワード:
xxx’or’1
原理:sql文の修正防止:パスワードmd 5暗号化
万能ユーザー名:
xxx’or1#
原理、#後のすべては実行しません
まとめ:万能ユーザー名とパスワードには特殊な記号、単一引用符が使用されています.単一引用符が意味を失うことを防止するにはaddcslashes:単一引用符がエスケープされます.すべての呼び出しフォーム情報はエスケープされます.
function deepslashes($data) {
if (empty($data)) {
return $data;
}
is_array($data) ? array_map('deepslashes', $data) : addcslashes($data);
}
GET伝達パラメータ
sql文:
delete from cz_category cat_id = 1
攻撃パラメータ:
1 or 1
通常はidが強制的に整形に変換されるか、出力変数+0が整数に暗黙的に変換される