如何通过Iptables-String在Linux中筛选出含恶意SQL关键词的HTTP请求?
- 内容介绍
- 文章标签
- 相关推荐
本文共计818个文字,预计阅读时间需要4分钟。
iptables的string模块可以匹配HTTP明文请求中的SQL关键字(如SELECT、UNION、INSERT INTO等),但仅适用于未加密的HTTP流量,且需要严格的匹配范围和位置控制,否则易造成误拦或失效。
确认系统支持 string 模块
执行以下命令验证内核和 iptables 是否启用该功能:
iptables -m string --help
若输出帮助信息,说明可用;若报错 Unknown arg,则需检查:
– 内核是否编译了 CONFIG_NETFILTER_XT_MATCH_STRING(常见于精简版容器或嵌入式系统)
– 是否安装完整版 iptables(非 nftables 替代包)
– 推荐使用 CentOS 7+、Ubuntu 18.04+ 等主流发行版
限定匹配范围,避免性能与误判
HTTP 请求头通常位于数据包前几百字节,正文可能含编码或分块传输。
本文共计818个文字,预计阅读时间需要4分钟。
iptables的string模块可以匹配HTTP明文请求中的SQL关键字(如SELECT、UNION、INSERT INTO等),但仅适用于未加密的HTTP流量,且需要严格的匹配范围和位置控制,否则易造成误拦或失效。
确认系统支持 string 模块
执行以下命令验证内核和 iptables 是否启用该功能:
iptables -m string --help
若输出帮助信息,说明可用;若报错 Unknown arg,则需检查:
– 内核是否编译了 CONFIG_NETFILTER_XT_MATCH_STRING(常见于精简版容器或嵌入式系统)
– 是否安装完整版 iptables(非 nftables 替代包)
– 推荐使用 CentOS 7+、Ubuntu 18.04+ 等主流发行版
限定匹配范围,避免性能与误判
HTTP 请求头通常位于数据包前几百字节,正文可能含编码或分块传输。

