首页 存档 技术 查看内容

PHP中该怎样防止SQL注入?

2018-3-30 13:00 |来自: 互联网 307 0

摘要: (点击上方公众号,可快速关注我们) 英文:StackOverFlow 中文:伯乐在线 - rokety 链接:http://blog.jobbole.com/67875/ 问题描述: 如果用户输入的数据在未经处理的情况下插入到一条SQL查询语句,那么应用将很 ...

(点击上方公众号,可快速关注我们)


英文:StackOverFlow

中文:伯乐在线 - rokety

链接:http://blog.jobbole.com/67875/

问题描述:

如果用户输入的数据在未经处理的情况下插入到一条SQL查询语句,那么应用将很可能遭受到SQL注入攻击,正如下面的例子:

$unsafe_variable = $_POST['user_input'];

mysql_query("INSERT INTO `table` (`column`) VALUES ('" . $unsafe_variable . "')");

因为用户的输入可能是这样的:

value'); DROP TABLE table;--

那么SQL查询将变成如下:

INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;

--')

应该采取哪些有效的方法来防止SQL注入?

最佳回答(来自Theo):

使用预处理语句和参数化查询。预处理语句和参数分别发送到数据库服务器进行解析,参数将会被当作普通字符处理。这种方式使得攻击者无法注入恶意的SQL。 你有两种选择来实现该方法:

1、使用PDO:

$stmt = $pdo-

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部