2011-04-24 72 views
10

如何安全防范我们的Web应用程序受到XSS攻击?如果一个应用程序没有对特殊字符转换器进行任何转换,那么这个应用程序易受攻击。如何避免XSS攻击的应用程序?

+0

伟大的文章如何防止在不同情况下的XSS攻击张贴在那里:http://stackoverflow.com/questions/19824338/avoid-xss-and-allow-some-html-tags-with-javascript/19943011# 19943011 – user1459144 2013-11-13 00:55:49

回答

1

只需添加到WhiteFang34名单:

它有几个白名单内置可供选择,如允许一些HTML,没有HTML等

我选择了这个在,因为它是如何Apache的百科全书的StringEscapeUtils.escapeHtml()处理撇号。即如果我们的用户输入:

艾伦的妈妈有一个很好的布朗尼食谱。

JSoup将独自离开撇号,而Apache的百科全书将逃脱字符串:

艾伦\'妈妈有一个很好的布朗尼食谱。

在显示给用户之前,我不想担心无法消除。

2

HTML转义输入工作得很好。 但在某些情况下,业务规则可能会要求您不要转义HTML。 使用REGEX不适合该任务,使用它很难提出一个好的解决方案。

我发现最好的解决办法是使用: http://jsoup.org/cookbook/cleaning-html/whitelist-sanitizer

它建立与所提供的输入DOM树和过滤器由白名单不previosly允许的任何元素。该API还有其他用于清理html的函数。