加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 在MVC应用程序中处理Rich Text

发布时间:2020-12-16 03:18:23 所属栏目:asp.Net 来源:网络整理
导读:在Web应用程序中使用富文本的最佳做法是什么?我不想让自己容易受到脚本攻击.数据是否应该编码进入数据库,然后在显示回用户时进行解码?有关富文本编辑器的任何建议,可以处理诸如删除脚本标记或编码输入的标记之类的内容吗? 解决方法 您应该选择已知标记和
在Web应用程序中使用富文本的最佳做法是什么?我不想让自己容易受到脚本攻击.数据是否应该编码进入数据库,然后在显示回用户时进行解码?有关富文本编辑器的任何建议,可以处理诸如删除脚本标记或编码输入的标记之类的内容吗?

解决方法

您应该选择已知标记和属性的白名单,将用户输入解析为 XML,并删除不在白名单中的每个标记或属性.

编辑:请注意,如果您允许超链接或图像,则必须验证src和href标记.我建议使用System.Uri解析它,将方案限制为http,并将域限制到您的站点(取决于您希望用户能够做什么).

以前也做过类似的事情;谷歌他们.

编辑:例如,见this question

第二次编辑:

在将数据放入数据库之前,不应对数据进行编码.只要您使用参数(如果您不是,您真的应该这样做),数据库将完全不受您放入其中的任何内容的影响.

如果您的输入清理是安全的(参见上文),如果您对其进行编码并在途中解码它将没有任何区别,并且如果清理不安全,则编码将无济于事.

但是,通过标准XML解析器运行它,拒绝任何不解析的输入,并使用解析器中的格式化XML(如上所述)可能是个好主意.

第3次编辑:

那里有许多富文本编辑器;对于MVC,我想我会推荐FCKEditor.它会为你逃避输入,但你不能完全依赖它,因为攻击者可以禁用JavaScript或伪造自己的HTTP请求. (您仍然需要在服务器上验证HTML). Web表单有很多丰富的编辑器(我认为,它可以进行服务器端验证);没有任何MVC(尚)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读