learning_mode

'learning_mode' 指令根据对请求行为的观察自动生成白名单规则,从而提高对 XSS 和 SQL injection 的防护。

语法learning_mode;
默认值off
上下文http, server, location, limit_except
参数none

说明

'learning_mode' 指令是 NAXSI 模块的一部分,该模块作为 NGINX 的反 XSS 和 SQL injection 工具。当启用此指令时,Web 应用防火墙将进入一个学习阶段,在该阶段观察传入请求并识别对特定应用有效的模式。该阶段通过基于所检测到的合法流量模式自动生成白名单规则来减少误报。通过分析哪些构成请求的正常行为,管理员随后可以在不误阻合法流量的情况下实施更严格的规则。

它对新应用或初始部署尤为有益,因为它能够动态定义可接受的行为。一旦学习阶段完成,管理员可以将服务器切换到更严格的模式,仅接受符合生成白名单的请求。这种两阶段的方法有助于在安全性和可用性之间取得平衡,使站点管理员更容易微调规则。此外,在学习模式下,NAXSI 会记录检测到的请求,这有助于审查并验证生成的白名单规则的准确性并进行必要的调整。

配置示例

server {
    location / {
        learning_mode;
        # Additional NAXSI configurations
    }
}

如果流量高度多样,学习模式可能会生成大量白名单,因此需要仔细审查。

在学习阶段监控日志至关重要,以了解正在生成哪些规则并相应地进行调整。

如果不加以管理且例外被列入白名单,长时间保持学习模式开启可能导致安全态势过于宽松。

← 返回所有指令