正文

php防止sql注入攻击


1680623364541111.jpg

[前言]

近期该网站收到俄罗斯的黑客攻击,攻击方式为通过get参数,注入sql语句,union all sql语句,但查询日志,该sql语句只查询到sql用户,是否具有super_priv超级权限,今天就分享一下,如何防止通过get参数,实现sql注入攻击

[过程]

注入方式:通过get参数,union all sql语句

http://xiaohu365.com/Blog/detail?n=10' UNION ALL SELECT CONCAT(0x7178786a71,(CASE WHEN (ISNULL(TIMESTAMPADD(MINUTE,3949,NULL))) THEN 1 ELSE 0 END),0x716b717871)-- -&bid=121

解决方法,其实就是过滤所有get参数,通过array_keys获取所有键值,挨个检查get参数,接下来就是缺少一个正则去过滤get参数非法数值,分享一个过滤正则方法如下:

截屏2023-04-04 23.56.33.png将该方法,放置入口文件之内,实现统一get参数过滤,效果如下:

截屏2023-04-04 23.37.19-tuya.png

其实mvc框架都自带request参数过滤,但是过滤方法过于简单,还是建议自己写一个正则方法

截屏2023-04-04 23.42.31-tuya.png截屏2023-04-04 23.43.14-tuya.png

[下载]

PreventingInjectionAttacks.txt

评论
还没有评论
留言