php mysql预处理_采用PHP预处理防御SQL注入

前言

当我们需要编写一个根据用户输入进行查询反馈的网页时,首先是如何构建一个能够满足用户查询要求的SQL语句;其次,则需要考虑如何防御SQL注入。

如何防御SQL注入关系到整个数据库,乃至服务器的安全,所以是一个不用忽视的问题,也是这篇文章所要论述的重点。

文章接下来的讲述将会以PHP + MySQL的组合进行举例说明。

利用字符串构造SQL语句

很多同学在初次编写调用数据库相关的程序时,第一直觉采用的就是利用字符串拼接的方法来构造SQL语句。

这个方法相当简单粗暴,请看下面的两个例子:

例子1:

$search = $_GET['search'];

$query = ("select * from books where name = '$search'");

$result = mysqli_query($link,$query);

例子2

$search = $_GET['search'];

$query = ("select * from books where name = '" . "$search" . "'");

$result = mysqli_query($link,$query);

以上的两种例子都是通过字符串先构建一个SQL查询语句,再通过拼接传入的参数构造成一个完整的SQL语句。

这样的方法之所以说是简单粗暴:简单在这个方法只是基于基本的字符串拼接操作;粗暴在采用字符串拼接的方法对SQL注入的防御能力几乎为零。</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值