gpt4 book ai didi

asp.net-mvc - 在 MVC 应用程序中处理富文本

转载 作者:行者123 更新时间:2023-12-04 21:27:28 26 4
gpt4 key购买 nike

在 Web 应用程序中使用富文本的最佳实践是什么?我不想让自己容易受到脚本攻击。数据是否应该编码进入数据库,然后在显示回用户时进行解码?关于处理诸如删除脚本标签或对输入的标记进行编码的富文本编辑器的任何建议?

最佳答案

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

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

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

编辑 :例如,参见 this question

第二次编辑 :

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

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

但是,通过标准 XML 解析器运行它可能是个好主意,拒绝任何未解析的输入,并使用来自解析器的格式化 XML(如我上面提到的)

第三次编辑 :

有许多富文本编辑器;对于 MVC,我想我会推荐 FCKEditor .它会为你转义输入,但你 必须不要完全依赖它,因为攻击者可以禁用 JavaScript 或伪造自己的 HTTP 请求。 (您仍然需要验证服务器上的 HTML)。有许多用于 Web 表单的丰富的编辑器(我假设它们进行服务器端验证);没有任何适用于 MVC 的(还)

关于asp.net-mvc - 在 MVC 应用程序中处理富文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1132900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com