要检查的模式以避免XSS攻击

Vik*_*s V 0 security xss jsf jsf-1.2

我写了一个Filter下面是代码.

public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain)
            throws IOException, ServletException {

HttpServletRequest srequest = (HttpServletRequest) request;
HttpServletResponse sresponse = (HttpServletResponse) response;

String url = srequest.getRequestURI();
if(url.contains("//What patterns to be checked here?"))
{
 //Invalidate the Session
 //Redirect to error page
}
Run Code Online (Sandbox Code Playgroud)

我正在阅读形成的网址,并希望避免XSS攻击.因此,我想在URL中检查可能表明它可能导致XSS攻击的任何模式.

我可以获得我可以在这里查看的所有模式的综合列表吗?例如,

url.contains("<script>");
Run Code Online (Sandbox Code Playgroud)

dam*_*asa 7

哇,不要.有很多来源可以解释为什么:

  • 黑名单几乎总是一件坏事
  • 您不应该在输入时检查XSS,但不管其来源如何都要转义输出

如果您想了解有关防止XSS的更多信息,请转到Owasp xss备忘单.

在另一个站点上,如果你想为你的网站添加一些有限的脚本/编辑功能,你可以而且应该使用替换(比如在stackoverflow中你不写<\ b>你使用**,后来转换为适当的html标签).或者你可以使用白名单,只允许文本和一些标签,但它可能很棘手,你必须非常小心.