xss_override_status
xss_override_status 指令修改用于跨站脚本防护的 HTTP 响应状态码。
Native cross-site scripting support in NGINX
·
httpserverlocationif in location
语法xss_override_status on | off;
默认值off
上下文http, server, location, if in location
参数flag
说明
xss_override_status 指令允许你控制在通常会返回 30x、40x 或 50x 状态的跨站请求中返回给客户端的 HTTP 响应状态码。当该指令设置为 on 时,任何此类响应状态都会被覆盖为返回 200 OK 状态码。该行为对于确保 JSONP 请求(这类请求在需要 cross-origin resource sharing 的场景中很常见)能顺利处理、不会被错误状态码中断特别有用。它有效地允许前端应用在遇到 HTTP 错误时仍然继续运行而不被中断。
该指令是 xss 模块的一部分,该模块扩展了 NGINX 处理某些跨站脚本 (XSS) 场景的能力。通常,该模块配置为回退到默认机制,即只有状态码为 200 或 201 的响应会被类似 JSONP 的回调处理。然而,在启用 xss_override_status 后,开发人员即使在原始处理返回各种错误状态时,也可以返回受控的 200 状态,这有助于为依赖于从不同来源进行异步数据获取的 Web 应用提供无缝的用户体验。
配置示例
server {
location /api {
xss_get on;
xss_override_status on;
}
}⚠
将此指令设置为 'on' 可能会掩盖在请求处理过程中应当返回其他状态码的底层问题,从而可能导致客户端行为产生误导。
⚠
请确保覆盖状态码不会与您应用程序的错误处理策略发生冲突,否则可能会隐藏真实的错误。