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

时间:2012-12-24 04:41:26

标签: security jsf xss 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
}

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

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

url.contains("<script>");

1 个答案:

答案 0 :(得分:7)

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

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

如果您想了解有关阻止XSS的更多信息,请转到Owasp xss cheat sheet

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