首页 > 数据库技术 > 详细

备忘:进一步强化SQL执行前的检查

时间:2019-10-31 22:51:54      阅读:92      评论:0      收藏:0      [点我收藏+]

之前在某处提过一嘴, 我已经在框架层面提供了依靠bin2hex-unhex实现的防注入机制。 如果全项目都能落实到位, 100%没有被注入的风险。

当然如何你能全项目使用预编译的SQL的方式,那可以直接不用看下文了。

我这是在处理一个历史项目。没有精力做到全项目清理一次。

今天又研究了一下网上讨论的注入方式, 打算进一步的强化检查。

先写写,备忘。

if(substr_count($sql,"@")>=3){ echo "此SQL不安全,需要改造。";}

if(substr_count($sql,‘\‘)>=3){ echo "此SQL不安全,需要改造。";}

if(substr_count($sql,"$")>=3){ echo "此SQL不安全,需要改造。";}

if(substr_count($sql,"/*")>=3){ echo "此SQL不安全,需要改造。";}

if(substr_count($sql,"&")>=3){ echo "此SQL不安全,需要改造。";}

if(substr_count($sql,"%")>=3){ echo "此SQL不安全,需要改造。";} 

if(substr_count($sql,"#")>=3){ echo "此SQL不安全,需要改造。";}

if(substr_count(strtolower($sql),"#")>0){ echo "此SQL不安全,需要改造。";}

 基本上就是把特殊字符直接掐死光。(union 啥的之前的版本已经完成检查了)

 

经过这个强制,一旦测试中出现报错,则可以找到相应的代码改为hex-unhex的方式。

 

有待实现,有待验证。。。。

 

备忘:进一步强化SQL执行前的检查

原文:https://www.cnblogs.com/nica/p/11773999.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!