PHP中的SQL注入和防御

什么是SQL注入 ?
程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。

攻击者可以提交一段精心构造的数据库查询代码,根据返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。

受影响的系统:对输入的参数不进行检查和过滤的系统。

来看下我自己编写的PHP一个登录的界面 完全没有过滤的


看这段代码对用户输入的数据完全没有过滤 就直接进入数据库查询了


这里密码是随意输入的 就直接绕过了限制


登录成功

这句代码在数据库里面是这样的


就直接查询出来了所有的数据 因为or 1=1永远是真,所以条件会成立。就会输出所有的数据

防御方法的话我是直接过滤的 不废话看代码!


用了这几个函数来过滤,addslashes是过滤字符串特殊符号知之前加了一个反斜杠 

这样的话 我刚才那样构造payload不能成功了

mysql_real_escape_string是对字符串中的'"\ \r \n 字符进行转义

我也不知道这样函数的用法对不对.请大家有啥意见多多指出.

小弟第一次写文章,大佬们多多指教.微笑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值