我已经写了一个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
}
我正在阅读形成的URL,并希望避免XSS
攻击。所以,我想在URL中检查任何可能表明它可能导致XSS
攻击的模式。
能给我一份所有模式的综合清单吗?例如,
url.contains("<script>");
哇,不要。有很多来源可以解释为什么:
- 黑名单几乎总是一件坏事
- 你不应该检查输入的XSS,但是,转义输出不管它的来源
如果你想要更多关于防止XSS的信息,请访问Owasp XSS备忘单。
在另一个网站上,如果你想添加一些有限的脚本/编辑功能到你的网站,你可以而且应该使用替代(像在stackoverflow你不写<b>你使用**,这是后来转换为适当的html标签)。或者你可以使用白名单,只允许文本和一些标签,但这可能很棘手,你必须非常小心。