【发布时间】:2013-02-08 05:49:12
【问题描述】:
允许用户在文本框中格式化他们的 html。然后将其发送到后端进行验证。然后其他用户可能会看到此文本框。
我想检查后端中的任何标签。我知道这可以用一个相对简单的正则表达式来完成。我会做类似<\s*?script\s*?>
我的问题是,如果有人这样做:
<a href="http://example.com" onClick="alert(1);">test</a>
这将通过验证。我也可以对 onClick 进行正则表达式检查,但我相信还有其他方法可以解决这个问题。
我的问题:有没有好的方法可以做到这一点?我是否只需要依靠正则表达式和我自己的研究来弄清楚它们还能如何运行脚本?
编辑
我想我可以创建一个他们可以输入的白名单。它主要用于格式化文本,所以<b>, <i>, <h> 等。虽然这可能是也可能不是可接受的解决方案,但我需要查看实际用例是什么。我希望对此有不同的解决方案。
【问题讨论】:
-
创建一个 JS 函数数组,然后通过函数解析 HTML 以检查多个“被阻止”关键字之一
-
是否需要用户输入any html?
-
不确定这是否可能超出您所要求的主题,但可能值得一试:stackoverflow.com/questions/4683907/… 和wpl.codeplex.com 它可能仍然是相关的,因为您正在处理 HTML 中的 JavaScript。
-
Stack Overflow 通过要求用户输入 Markdown 来解决这个问题。那怎么样?