gpt4 book ai didi

asp.net-mvc - 仅允许某些 HTML 标记作为用户输入

转载 作者:行者123 更新时间:2023-12-04 02:41:53 24 4
gpt4 key购买 nike

我的站点允许站点用户撰写博客文章

class BlogPost  
{
[AllowHtml]
public string Content;
}

该站点是使用 MVC5 Internet 应用程序模板创建的,并使用 bootstrap 3 作为其 CSS。所以我决定使用 http://jhollingworth.github.io/bootstrap-wysihtml5处理富文本编辑器的所有 JavaScript 部分。

它就像一个魅力。但是为了使 POST 发生,我必须添加 [AllowHtml]属性如上面的代码。所以现在我害怕危险的东西会进入数据库并反过来显示给所有用户。

我试着给出像 <script>alert("What's up?")</script> 这样的值等在表格中,它似乎没问题...文本显示方式完全相同( <script> 变成了 &lt;script&gt; 。但这种转换似乎是由我使用的 javascript 插件完成的。

所以我使用fiddler 编写了一个带有相同script 标签的POST 请求,这次页面实际执行了JavaScript 代码。

有什么方法可以找出易受攻击的输入,例如 <script>甚至<a href="javascript:some_code">Link</a> ...?

最佳答案

不幸的是,您必须自己清理 HTML。查看这些关于人们如何做到的:

  1. How to sanitize input from MCE in ASP.NET? - 使用 Html Agility Pack 的白名单
  2. .NET HTML Sanitation for rich HTML Input - 使用 Html Agility Pack 的黑名单

接受 HTML 的另一种方法是接受 markdownBBCode反而。它们都被广泛使用(markdown 被 stackoverflow 使用!)并且消除了对输入进行清理的需要。还有丰富的编辑器可用。

编辑

我发现 Microsoft Web Protection Library 可以清理 HTML 输入通过 AntiXss.GetSafeHtml 和 AntiXss.GetSafeHtmlFragment。虽然文档真的很差,而且您似乎无法配置哪些标签有效。

关于asp.net-mvc - 仅允许某些 HTML 标记作为用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19735214/

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