我对SQL注入很新,我认为我的代码非常容易被注入。但我尝试使用
1 OR 1=1; DROP TABLE [IF EXISTS]; -- as a username and
OR 1=1; as a password in
$sql ="SELECT * FROM student_2556 WHERE stu_code = '$user' AND stpass = '$pass' ";
$result = mysql_db_query($dbname, $sql);
如何将其注入并删除所有表?
答案 0 :(得分:3)
由于您的变量用引号括起来,理论上您可以通过添加另一个引号来进行SQL注入,例如传入密码:
1 '; DROP TABLE [IF EXISTS]; '
--^ ends the previous value assignment
这会将你的sql变成:
SELECT * FROM student_2556 WHERE stu_code = '$user' AND stpass = '1 '; DROP TABLE [IF EXISTS]; ''
虽然如果你的目标是阻止SQL注入,你需要做的就是正确地参数化你的输入变量,你不必担心它!