用户在我的网站上有一个页面,他们可以写他们自己的html。我希望它可以用于有序列表、样式等等,但是有些人会尝试插入脚本,这是我不允许的。
更新用户描述的机制是通过ajax。在javascript中,我向文件ajax.ashx发送了一个请求,该文件调用ajaxMethods.cs中的一个函数。在函数中,我使用用户的新描述更新sql服务器。
在向服务器提交描述之前,如何验证函数中的输入?我想去掉任何与脚本有关的东西,但保留普通的html标签,比如<p>。有没有什么工具可以解决所有这些问题?
发布于 2011-11-11 20:46:56
为什么不允许用户使用自定义格式/语言(例如Markdown),然后将此服务器端解析为HTML?这样,您就知道在实际请求中找到的任何脚本/ html代码都是无效的,并且可以被剥离(或编码)。这也为您提供了只允许预先确定的标签列表的优势。它基本上会为您提供与StackOverflow相同的功能。
发布于 2011-10-27 20:19:24
我建议你HttpServerUtility.HtmlEncode你的输出。尝试解析出脚本标记而不是HTML不是一种好方法。请参阅下面的参考:
XSS (Cross Site Scripting) Cheat Sheet
https://stackoverflow.com/questions/7915661
复制相似问题