问题 如何避免XSS攻击的应用程序?


如何保护我们的Web应用程序免受XSS攻击?如果一个应用程序没有对特殊字符进行任何转换,那么它就很容易受到攻击。


3550
2018-04-24 09:53


起源

在那里发布了如何防止不同情况下的XSS攻击的伟大帖子: stackoverflow.com/questions/19824338/... - user1459144


答案:


在将输出输出回用户之前,您应该将HTML转义为任何输入。一些参考:


12
2018-04-24 09:55





HTML转义输入非常有效。 但在某些情况下,业务规则可能要求您不要逃避HTML。 使用REGEX不适合任务,并且很难找到使用它的好解决方案。

我找到的最佳解决方案是使用: http://jsoup.org/cookbook/cleaning-html/whitelist-sanitizer

它使用提供的输入构建DOM树,并过滤白名单不能预先允许的任何元素。 API还具有其他用于清理html的功能。


2
2017-08-01 15:57





只是添加到WhiteFang34'列表:

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

我在Apache Commons上选择了它 StringEscapeUtils.escapeHtml() 因为它如何处理撇号。即如果我们的用户输入:

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

JSoup将单独留下撇号,而Apache Commons将逃脱该字符串:

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

在向用户显示之前,我不想担心失败。


1
2018-02-08 19:02