欢迎光临
我们一直在努力

正则表达式(九)网络安全:检测SQL注入攻击 + 检测XSS跨站脚本 + 扫描敏感信息泄露 + 匹配暴力破解异常IP

整理网络安全类的查询

正则表达式基础语法

元字符

  • . – 匹配任意单个字符(除换行符)
  • \\d – 匹配数字
  • \\w – 匹配字母、数字、下划线
  • \\s – 匹配空白字符
  • ^ – 匹配字符串开始
  • $ – 匹配字符串结束

量词

  • * – 0次或多次
  • + – 1次或多次
  • ? – 0次或1次
  • {n} – 恰好n次
  • {n,} – 至少n次
  • {n,m} – n到m次

字符类

  • [abc] – 匹配a、b或c
  • [a-z] – 匹配a到z的任意字符
  • [^abc] – 匹配除a、b、c外的字符

分组和选择

  • (abc) – 捕获分组
  • (?:abc) – 非捕获分组
  • a|b – 匹配a或b

网络安全类正则表达式查询表格

ID类别标题正则表达式描述示例注意事项
89 网络安全类 检测SQL注入攻击 (UNION|SELECT|DROP|INSERT|DELETE|UPDATE|ALTER|EXEC)\\s+ 检测SQL注入危险关键词 user=1' UNION SELECT * FROM user → 检测到UNION、SELECT 1. 需忽略大小写2. 可能误报合法SQL语句3. 无法检测编码绕过
90 网络安全类 检测XSS跨站脚本 (<script|onclick|onload|onerror|javascript:) 检测XSS危险标签/事件 <script>alert(1)</script> → 检测到<script> 1. 需忽略大小写2. 无法检测事件处理器的其他写法3. 可能被HTML实体编码绕过
91 网络安全类 扫描敏感信息泄露 (1[3-9]\\d{9}|[1-9]\\d{5}(19|20)\\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]|\\d{16,19}) 扫描手机号、身份证、银行卡 手机:13800138000,身份证:11010119900307789X → 检测到敏感信息 1. 身份证校验位验证不完整2. 银行卡号长度范围过大3. 可能匹配到类似格式的非敏感数据
92 网络安全类 匹配暴力破解异常IP (\\d+\\.\\d+\\.\\d+\\.\\d+)\\s+Failed password 匹配登录失败的IP地址 192.168.1.1 Failed password for root → 提取IP:192.168.1.1 1. IP地址格式验证不严格2. 依赖特定的日志格式3. 可能匹配到非恶意失败

常见错误及避免方法

1. SQL注入检测的局限性

问题:当前正则表达式过于简单,容易被绕过

// 当前写法
(UNION|SELECT|DROP|INSERT|DELETE|UPDATE|ALTER|EXEC)\\s+

// 改进建议
(?i)(union\\s+select|drop\\s+table|insert\\s+into|delete\\s+from)

2. XSS检测的不足

问题:无法检测大小写变种和编码绕过

// 当前写法
(<script|onclick|onload|onerror|javascript:)

// 改进建议
(?i)(<script|onclick|onload|onerror|javascript:|&#x)

3. 敏感信息匹配的精度问题

问题:身份证和银行卡验证不够精确

// 改进的身份证验证(更精确)
[1-9]\\d{5}(19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[\\dXx]

// 改进的银行卡验证(更合理)
\\d{16,19}(?=\\D|$)

4. IP地址匹配的改进

问题:当前匹配可能匹配到非IP地址

// 当前写法
(\\d+\\.\\d+\\.\\d+\\.\\d+)

// 改进建议
\\b(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\b

最佳实践建议

  • 始终使用忽略大小写标志:(?i)或对应编程语言的忽略大小写选项
  • 添加单词边界:使用\\b避免部分匹配
  • 考虑性能优化:避免过度复杂的正则表达式
  • 结合其他验证:正则表达式应作为第一层过滤,结合业务逻辑验证
  • 定期更新规则:根据新的攻击手法更新检测规则
  • 这些正则表达式在实际应用中需要根据具体场景进行调整和优化,建议配合专业的WAF(Web应用防火墙)使用。

    我用代码做了一个正则表达式查询库,可以查询100种典型应用,也可以验证和测试你的代码,可以点击直接下载:

    正则表达式查询库 覆盖数据验证、文本提取/清洗、开发调试、日志分析、网络安全等数十个领域的100种正则表达式应用场景

    100中正则表达式查询库 在这里插入图片描述 在这里插入图片描述

    正则表达式查询库 覆盖数据验证、文本提取/清洗、开发调试、日志分析、网络安全等数十个领域的100种正则表达式应用场景在这里插入图片描述

    赞(0)
    未经允许不得转载:171主机测评 » 正则表达式(九)网络安全:检测SQL注入攻击 + 检测XSS跨站脚本 + 扫描敏感信息泄露 + 匹配暴力破解异常IP
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址