重複の可能性:
mysql_real_escape_string()は、addslashes()が実行しないことを実行しますか?
PHPのaddslashes関数がSQLインジェクションに対してどのように/なぜ脆弱であるかについての記事をレビューしてきました。私が読んだすべてのことは、特定のmysqlエンコーディングタイプ(default-character-set = GBK)に問題がある、またはmagic_quotesが有効になっている場合に問題があると言っています。ただし、このシナリオでは、addslashes()関数から抜け出して、管理者としてログインするなど、悪意のあることを行うことができませんでした。
$user = addslashes($_POST['user']);
$pass = sha1($_POST['pass']);
$sql = "SELECT * FROM admins WHERE user = '".$user."' AND `pass` = '".$pass."'";
$nums = mysql_num_rows(mysql_query($sql));
if($nums==1){
$_SESSION['admin_user'] = $user;
$_SESSION['admin_pass'] = $pass;
これはクライアントの(マイナーな)セキュリティ監査であり、PDOを利用することをお勧めしますが、現在の脆弱性を表示する必要があります。
参照: