在PHP 8中防止sql注入的最好方法是什么?
我唯一知道的方法是Prepared statement
。
https://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php
我想知道在PHP-8中是否有其他方法可以防止sql注入?
我看到这些方法是为php5和php7防止SQL注入。但在PHP 8中我们应该怎么做呢?
mysqli::real_escape_string
mysqli::escape_string
mysqli_real_escape_string
(PHP 5, PHP 7)
https://www.php.net/manual/en/mysqli.real-escape-string.php
它还没有被弃用,但我们应该非常小心地使用它。
在PHP-8中还有其他方法吗?
escape_string
函数不能完全防止SQL注入。SQL注入甚至可能不需要特殊字符。下面是一个简单的例子:
$id = mysql_real_escape_string("1 OR 1=1");
$sql = "SELECT * FROM table WHERE id = $id";
准备语句是防止SQL注入的正确方法,无论你的PHP版本如何。