防止sql注入

1、在mysql中,字段 为数字 不判断为 本表字段 例如 select * from user where 2=‘2’; 如果是字母则 判断是否 为本表字段
2、在mysql 中所有的 非0 和 非false 的字段都为 true 例如 select * from user where 2; 为真选出所有的字段
3、正确的sql语句,字符字段须加上 单引号 例如 select * from user where name ='".$name."';
   加上单引号 则判断为一个变量,
   不加,攻击的时候 当成两个变量 $name=ssfs union select * from user 例如 select * from user where name=".$name.";
4、mysql中 /*表示注释 select * from user where name="sfs" /* and pass='sfs'; pass不执行了
5、pdo的预处理函数 prepare 能处理sql 注入,可以使用这个接口
6、做搜索的时候 需要判断 输入的内容为空 为% 为_ 等通配符
7、解决办法是 在PHP.ini 中开启 magic_quote_qrc 为 on 或者 加上 addslashes() 函数 
   内容数值的 用 interval 函数 字符串 的 用addslases或htmlsepecialchars 函数 并判断存不存在 select union delete 等关键词
8、还有高级注入的是 char() 函数转义 ,也该过滤它
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值