您的位置:首页 > Web前端 > CSS

如何检测SQL注入和CSS攻击漏洞

2016-04-13 16:36 686 查看
对于他们的攻击,主要是通过使用正则表达式来做输入检测:

检测SQL meta-characters的正则表达式 :/(\%27)|(’)|(--)|(\%23)|(#)/ix

解释:我 们首先检查单引号等值的hex,单引号本身或者双重扩折号。

修正检测SQL meta-characters的正则表达式: /((\%3D)|(=))[^ ]*((\%27)|(’)|(--)|(\%3B)|(:))/i

解释: 这个规则首先留意 = 号或它的hex值(%3D),然后考虑零个或多个除换行符以外的任意字符,最后检测单引号,双重破折号或分号。

典型的 SQL 注入攻击的正则表达式: /w*((\%27)|(’))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix

解释:

w* - 零个或多个字符或者下划线。

(\%27)|’ - 单引号或它的hex等值。

(\%6 F)|o|(\%4 F))((\%72)|r|-(\%52) -‘or’的大小写以及它的hex等值

检测SQL注入,UNION查询关键字的正则表达式: /((\%27)|(’))union/ix

(\%27)|(’) - 单引号和它的hex等值

union - union关键字

可以同样为其他SQL查询定制表达式,如 >select, insert, update, delete, drop, 等等.

检测MS SQL Server SQL注入攻击的正则表达式: /exec(s|+)+(s|x)pw+/ix

exec - 请求执行储存或扩展储存过程的关键字

(s|+)+ - 一个或多个的空白或它们的http等值编码

(s|x) p- ‘sp’或‘xp’字母用来辨认储存或扩展储存过程

w+ - 一个或多个字符或下划线来匹配过程的名称

CSS的检测也主要是正则表达式:

一般 CSS 攻击的正则表达式: /((\%3C)|<)((\%2F)|/)*[a-z0-9\%]+((\%3E)|>)/ix

解释:

((\%3C)|<) -检查<和它hex等值

((\%2F)|/)*-结束标签/或它的 hex等值

[a-z0-9\%]+ -检查标签里的字母或它hex等值

((\%3E)|>) -检查>或它的hex等值

"<img src" CSS 攻击正则表达式: /((\%3C)|<)((\%69)|i|(\%49))((\%6D)|m|(\%4D))((\%67)|g|(\%47))[^ ]+((\%3E)|>)/I

解释:

(\%3 C)|<) -<或它的hex等值

(\%69)|i|(\%49))((\%6D)|m|(\%4D))((\%67)|g|(\%47) -’img’字母或它的大小写hex等值的变化组合

[^ ]+ -除了换行符以外的任何跟随<img的字符

(\%3E)|>) ->或它的hex等值

CSS 攻击的极端的正则表达式 : /((\%3C)|<)[^ ]+((\%3E)|>)/I

解释:

这个规则简单寻找<+除换行符外的任何字符+>。由于你的web服务器和web应用程序的构架,这个规则可能产生一些错误。但它能保证捉住任何CCS或者类似CSS的攻击。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: