注入点检测php,php – 检测潜在的SQL注入攻击以及其他安全问题

我们都知道,制作一个没有一两个缺陷的大型网站几乎是不可能的.因此,我编写了一个小型监视器,用于检查Apache访问日志以查找潜在的SQL注入攻击(以及其他内容),并且它运行良好.每当有人尝试攻击时,我都会收到警报,而且我很少有误报,现在默认操作是将它们转储到iptables下拉列表中.它甚至帮助我识别了一些(非安全性)错误并将其删除.

这是我的规则(不区分大小写):

PathInjection = \./\.\./(bin|boot|data|dev|etc|home|lib|lib64|media|mnt|opt|proc|root|sbin|selinux|srv|sys|tmp|usr|var)/

Havij = 0x31303235343830303536

r3dm0v3 = 0x7233646D3076335F68766A5F696E6A656374696F6E

LogicBypass = '.*?(\bor|\band|\bxor|\|\||\&\&).*?--

UnionSelect = union[^a-z-_]+((all|distinct)[^a-z-_]+)?select[^a-z-_]

我想知道的是,您如何绕过这些检查并仍能产生有效注射?你能想出一种在不引入误报的情况下改进它们的方法吗?

几点说明:

>关闭区分大小写.

>我正在使用MySQL.

> Havij和r3dm0v3条目用作全面阻止使用这些自动化工具.

>我正在检查raw和urldecoded字符串.

>我不是在寻找像“制作更安全的代码”这样的答案.

>我不是在寻找一种不同的方式来做到这一点,只是一种改善现有逻辑的方法.

编辑:

好吧,所以人们似乎误解了我的意图.这可能是我的错,因为我没有完全解释.这被要求作为监控产品的附加功能,旨在提供最低限度的安全监控.作为我们与客户和文档对话的一部分,我们强调这不是一个包罗万象,也不是替代适当的安全基础设施(例如IDS和防火墙).它只是一种信息服务,可帮助提供基本威胁检测并生成有关潜在攻击数量的统计信息.我不是想写一个IDS或防火墙.如果由我决定,我会退出该功能并告诉他们使用自己的监控系统安装一整套安全基础设施,但这不是我的号召.目前的情况是我一直在自己的网站上测试系统.现在,我只是想找到一种方法来改进正则表达式字符串,使其更有效.希望这可以解决一些问题.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值