length_hiding
指令 `length_hiding` 通过在响应正文末尾附加随机字节来启用响应长度隐藏功能。
NGINX Length Hiding Filter Module
·
httpserverlocationif in location
语法length_hiding on | off;
默认值off
上下文http, server, location, if in location
参数flag
说明
length_hiding 指令是 NGINX Length Hiding Filter 模块的一部分,该模块通过在 HTTP 响应末尾附加随机内容来帮助缓解 BREACH 攻击。启用时,该指令通过添加随机的 HTML 注释来改变输出长度,从而掩盖响应正文的实际大小。这使得攻击者更难推断响应中包含的安全令牌的长度,从而保护敏感信息。
该指令接受一个布尔标志参数,用于确定是否激活长度隐藏。如果启用,NGINX 将在每个响应的末尾附加一个随机的 HTML 注释。在无法禁用内容压缩的情况下,这尤其有用,因为它提供了一种在不影响整体性能的前提下随机化响应大小的方法。此外,该模块允许配置将要添加的随机数据的最大长度,从而为不同应用场景提供灵活性。这些随机字节的长度可以限制在指定范围内,使管理员能够控制每个响应添加多少额外数据。
在实际使用中,该指令应放在 NGINX 配置文件中的 http、server 或 location 上下文内。配合用于设置随机长度上限的 length_hiding_max 指令,管理员可以精细调整 Web 服务器响应的安全性和性能特性。
配置示例
location /secure {
length_hiding on;
length_hiding_max 512;
}⚠
确保 length_hiding_max 指令设置得当,以避免添加过多数据从而影响性能。
⚠
在未经过适当测试的情况下使用 length_hiding 可能会导致依赖特定内容长度进行解析的客户端出现问题。
⚠
不应将该功能作为针对 BREACH 的唯一缓解措施;它是更广泛安全策略的一部分。