本篇文章介绍了,php中防止SQL注入的最佳解决方法。需要的朋友参考下
如果用户输入的是直接插入到一个SQL语句中的查询,应用程序会很容易受到SQL注入,例如下面的例子:
复制代码 代码如下:
$unsafe_variable = $_POST['user_input'];
mysql_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . "')");
这是因为用户可以输入类似VALUE"); DROP TABLE表; - ,使查询变成:
复制代码 代码如下:
INSERT INTO table (column) VALUES('VALUE'); DROP TABLE table;'
我们应该怎么防止这种情况呢?下面我们来看看Theo的回答
使用预备义语句和参数化查询。对于带有任何参数的sql语句都会被发送到数据库服务器,并被解析!对于攻击者想要恶意注入sql是不可能的!
实现这一目标基本上有两种选择:
1.使用PDO(PHP Data Objects )
复制代码 代码如下:
$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name');
$stmt->execute(array(':name' => $name));
foreach ($stmt as $row) {
// do something with $row
}
以上就是php中防止SQL注入的最佳解决方法的详细内容,更多请关注0133技术站其它相关文章!