我网站上的用户有一个页面可以自己编写html。我想将它用于有序列表,样式等等,但有些人会尝试插入脚本,我不能允许。
更新用户描述的机制是通过ajax。在javascript中,我向文件ajax.ashx
发送请求,该文件调用ajaxMethods.cs
中的函数。在函数中,我使用用户的新描述更新sql server。
在将描述提交给服务器之前,如何验证函数中的输入?我想要删除与脚本有关的任何内容,但保留正常的html标记,如<p>
。是否有任何工具可以处理所有这些?
答案 0 :(得分:1)
为什么不允许用户使用自定义格式/语言(例如Markdown),然后将此服务器端解析为HTML?这样您就知道在实际请求中找到的任何脚本/ html代码都是无效的,可以被剥离(或编码)。这也为您提供了仅允许预定标签列表的优势。它基本上会为您提供与StackOverflow相同的功能。
答案 1 :(得分:0)
我建议您输出HttpServerUtility.HtmlEncode
。试图解析脚本标签而不是HTML不是一个好方法。见下面的参考文献: