我可以对此代码执行SQL注入吗?

Dom*_*oSL 2 php mysql sql database sql-injection

我还在学习SQL注入,但总是最好的方法是使用示例,所以这是我的代码的一部分:

$sql = "INSERT INTO `comments` (`id`, `idpost`, `comment`, `datetime`, `author`, `active`) 
        VALUES (NULL, '" . addslashes($_POST['idcomment']) . "', '" . 
        addslashes($_POST['comment']) . "', NOW(), '" . 
        addslashes($_POST['name']) . "', '1');";

  mysql_query($sql);
Run Code Online (Sandbox Code Playgroud)

知道用户输入的所有POST变量,你能告诉我如何注入这个脚本吗?所以我可以更多地了解这个漏洞.谢谢!

我的数据库服务器是MySQL.

Pek*_*ica 5

不要使用addslashes(),总是使用mysql_real_escape_string().有一些已知的边缘情况,其中addslashes()是不够的.

如果从头开始新的东西,最好使用支持预处理语句(如PDO或mysqli)的数据库包装器.

  • +1为PDO/mysqli +准备好的州议会建议 - 绝对是一个很好的方法. (2认同)