在h:inputTextarea中阻止Html标记

时间:2011-06-16 13:07:33

标签: java html jsf

我需要阻止h:inputTextarea的Html标签。 此textarea的内容将显示在outputText中,其中escape设置为false。 它被设置为false,因为我允许显示链接<a href...>.

当我点击保存时,它会验证书面文字以检查是否有链接,如果有,我们会使用<a href...>

保存在数据库中

如果我在上面这样做是错误的方法,请告诉我,但不要忘记尝试帮助我阻止html标签。如果我错了怎么做,我会在以后再做,但我需要解决这个问题,就像我现在说的那样:(

TY

1 个答案:

答案 0 :(得分:0)

您应该使用其他标记语言,例如markdown而不是HTML来阻止XSS。如果您允许使用a-Tag,用户仍然可以编写如下内容:

<a href="javascript:doSomethingEvil()">foo</a>

如果你继续尝试找到并过滤这样的东西,请看一下这些不错的例子:http://ha.ckers.org/xss.html

修改 如果真的是唯一的标签,你想要允许,你只想拥有可点击的链接,为什么不尝试识别文本中的URL而不是强迫用户编写HTML?查看this SO question