如何应对 XSS 攻击

How to respond to an XSS attack

我在 OWASP 和网络上看到了很多关于如何 avoid/prevent XSS 攻击的信息。但是,我还没有找到任何提到在检测到 XSS 攻击时如何响应的内容。

应返回什么 HTTP 状态代码(即 400、403...)? 您应该在屏幕上还是在 console.log 上提供错误消息? 将他们重定向到另一个页面?

您应该发送一个 HTTP 400(错误请求)响应代码和一条最少的错误消息,足以使技术支持可以帮助合法用户,但不会向攻击者提供信息。

同时记录请求。

合法用户可能会输入一些他们不应该输入的信息,因此您不应采取过于严厉的措施。

一个真实世界的例子是 Hibernate Validator 的@SafeHtml 验证,如果输入可能是 XSS,它将导致 400 状态代码。