This question already has answers here:
Examples of SQL Injections through addslashes()?
(4个答案)
5年前关闭。
我正在对第页上接收的所有参数使用addslashes()。并在mysql查询中对这些变量应用单个法院。这是我的代码:
$string             = addslashes($_POST['string']);
$queryString            = " INSERT INTO general (description) VALUES ('$string')";
$query                  = mysql_query($queryString);

以及
$queryString            = "SELECT description FROM general WHERE description = '".$string."'";
$query                  = mysql_query($queryString);

这段代码中有没有可能注入SQL?

最佳答案

阅读本文:addslashes() Versus mysql_real_escape_string()
节选:
如果我想尝试对MySQL数据库进行SQL注入攻击,那么用反斜杠转义单引号是一种糟糕的做法。但是,如果您使用addslashes(),我就很幸运了。我需要做的就是注入类似0xbf27的内容,addslashes()将其修改为0xbf5c27,一个有效的多字节字符,后跟一个引号。换句话说,尽管你逃走了,我还是可以成功地插入一个引用。这是因为0xbf5c被解释为单个字符
注意:
Please, don't use mysql_* functions in new code。它们不再保持and are officially deprecated。看到red box?取而代之的是学习prepared statements并使用PDOMySQLi-this article将帮助您决定使用哪个。如果选择PDO,here is a good tutorial

关于php - addlashes()是否足够安全以避免SQL INJECTIONS? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26966056/

10-14 11:27