gpt4 book ai didi

asp.net-mvc - 我使用 AntiXSS 但我仍然可以破解页面

转载 作者:行者123 更新时间:2023-12-02 08:43:18 34 4
gpt4 key购买 nike

我不知道我这样做是否正确。
我第一次构建一些东西来防止对页面的攻击。<​​br/>我将从底部开始:
我有属性(property):

public string Description {get;set;}

用户可以通过tinyMCE设置它的值

tinyMCE.init({
mode: "textareas",
theme: "advanced",
encoding : "xml"...

在将其保存到数据库之前,在 Controller 中,我执行以下操作:

model.Description = HttpUtility.HtmlDecode(model.Description);

在数据库中我有这样一个值:

<p>bla bla bla</p>

我将 AntiXSS 库添加到我的项目中:

public class AntiXssEncoder : HttpEncoder
{
public AntiXssEncoder() { }

protected override void HtmlEncode(string value, TextWriter output)
{
output.Write(Encoder.HtmlEncode(value)); // on breakpoint code always get in here
}
...

当我显示我使用的数据库中的数据时:

@Html.Raw(Model.Place.Description)

它工作正常我只看到文本。没有 Html 标签。隔断线工作正常。我可以为文本设置粗体、斜体等样式。

但是如果我输入:

<script>alert(open to attack);</script>


我收到警告窗口
我不明白我是否需要做更多的事情来防止这种情况发生?

最佳答案

I added AntiXSS library to my project

你在哪里使用它?

确保您不仅添加了 AntiXSS,而且还实际使用了它:

@Html.Raw(Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(Model.Place.Description))

但请记住,新版本的 AntiXSS 库有点太严格了,会去除像 <strong> 这样的标签。和 <br>可能不需要。

作为 AntiXSS 库的替代品,您可以使用 HTML Agility Pack做这个工作。里克·斯特拉尔 blogged about a sample implementation .

关于asp.net-mvc - 我使用 AntiXSS 但我仍然可以破解页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14612875/

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