我需要阻止h:inputTextarea的Html标记。该文本区域的内容将显示在outputText中,escape设置为false。它被设置为false,因为我允许显示链接<a href...>.
当我点击保存时,它会验证写下的单词,以检查是否有链接,如果有,我们用<a href...>
保存在数据库上
如果我上面所做的是错误的方法,请告诉我,但别忘了帮我屏蔽html标签。如果我在如何做这件事上错了,我稍后会做,但我需要像我现在说的那样解决这个问题:(
ty
您应该使用其他标记语言,如markdown,而不是HTML来防止XSS。如果你允许a-Tag,用户仍然可以写这样的东西:
<a href="javascript:doSomethingEvil()">foo</a>
如果你继续尝试寻找和过滤类似的东西,看看这些很好的例子:http://ha.ckers.org/xss.html
编辑:如果真的是唯一的标签,你想允许,你只想有可点击的链接,为什么不尝试识别文本中的URL,而不是强迫用户写HTML呢?看看这个SO问题。