标签: antixsslibrary

AntiXss.JavaScriptEncode包装导致单引号的原因是否正确?

我一直在使用微软的AntiXss库,并想知道为什么它的JavaScriptEncode方法将结果包装在单引号中有充分的理由?这种行为似乎非常规.

asp.net xss antixsslibrary

5
推荐指数
1
解决办法
3043
查看次数

有关在ASP.NET MVC中放置AntiXSS调用的建议

我试图在我的ASP.NET MVC应用程序中找到防止跨站点脚本的最佳方法.我计划使用Microsoft的AntiXSS库并基本上保护两个级别:1)保护常规文本框(即那些只应包含纯文本的文本框和2)保护可生成HTML的富文本框.图书馆本身非常简单,但我很难决定在何处进行验证.我使用强类型HTML帮助程序并直接绑定我的模型/视图模型,并希望避免在每个操作方法中单独应用AntiXSS.另外,绝对不想在我的帖子操作上关闭validateinput,如果我在我的模型/ viewmodel的某个属性中传递HTML,这是一个要求.

是否可以在ASP.NET MVC中注入AntiXSS,以便在渲染视图(解码)之前和进入动作过滤器(编码)之前应用它?

提前致谢

xss asp.net-mvc antixsslibrary

5
推荐指数
1
解决办法
1710
查看次数

Fortify和AntiXSS

我的公司要求我们的ASP.NET代码在发布代码之前通过Fortify 360扫描.我们到处使用AntiXSS来清理HTML输出.我们还验证输入.不幸的是,他们最近更改了Fortify正在使用的"模板",现在它将我们所有的AntiXSS调用标记为"糟糕验证".这些调用正在执行AntiXSS.HTMLEncode(sEmailAddress).

任何人都知道什么会满足Fortify?它标记的很多东西都是输出,其中值来自数据库而根本不是来自用户,所以如果HTMLEncode不够安全,我们根本不知道是什么!

c# asp.net html-encode antixsslibrary fortify

4
推荐指数
2
解决办法
6862
查看次数

如何在没有Visual Studio的情况下在ASP.Net 2.0中包含Anti-XSS

我可以在没有Visual Studio的ASP.Net 2.0应用程序中包含Microsoft的Anti-XSS库吗?如果是这样,怎么样?

我已经下载并安装了这个库.从Microsoft的下载页面:"在您的应用程序中引用该库并使用它." 对此进行研究会发现使用Visual Studio执行此操作的说明,但并非没有.

这个SO答案链接到一些有前途的文章,但那些也假设Visual Studio开始.

(至于为什么我不能使用Visual Studio:我的经理说"不")

asp.net asp.net-2.0 antixsslibrary

4
推荐指数
1
解决办法
5310
查看次数

AntiXss库运行不正常

我正在使用AntiXssLibrary 4.0但它没有转义\ x3c.我的错是什么?

我已将AntiXss配置为HttpEncoder基于此处的默认值http://haacked.com/archive/2010/04/06/using-antixss-as-the-default-encoder-for-asp-net.aspx并设置encoderTypehttpRuntimeweb.config.

我也创建AntiXSSEncoder派生HttpEncoder而不是弃用

output.Write(AntiXss.HtmlEncode(value));
Run Code Online (Sandbox Code Playgroud)

我用它来覆盖HtmlEncode方法:

output.Write(Encoder.HtmlEncode(value));
Run Code Online (Sandbox Code Playgroud)

目前,如果我浏览这个:

http://localhost:28453/?k=sss\x3cscript\x3ealert%28\x27haaha\x27%29;\x3c/script\x3e
Run Code Online (Sandbox Code Playgroud)

警报"haaha"显示AntiXss库无法正常工作.我只想在这个节目http://channel9.msdn.com/Events/MIX/MIX10/FT05看到第13分钟.

为了确认我还在一个动作中设置了这个:

    public ActionResult Index(string k)
    {
        ViewBag.k = k;
        ViewBag.j = Microsoft.Security.Application.Encoder.HtmlEncode(k);
        return View();
    }
Run Code Online (Sandbox Code Playgroud)

然后在视图中我说:

<script type="text/javascript">
    $(document).ready(function () {
        var a = '@ViewBag.k';
        var b = '@ViewBag.j';
    $('.resultName:first').html(b);
});
</script>
Run Code Online (Sandbox Code Playgroud)

从浏览器中,值a和b是相同的,表明AntiXss不能正常工作!

<script type="text/javascript">
    $(document).ready(function () {
        var a = 'sss\x3cscript\x3ealert(\x27haaha\x27);\x3c/script\x3e';
        var b = 'sss\x3cscript\x3ealert(\x27haaha\x27);\x3c/script\x3e';
        $('.resultName:first').html(b);
    });
</script>
Run Code Online (Sandbox Code Playgroud)

更新:它只发生在我使用 …

xss antixsslibrary asp.net-4.0 asp.net-mvc-3

3
推荐指数
1
解决办法
3520
查看次数

ASP.NET中的脚本漏洞 - 设置validateRequest ="true"的好建议?

我正在阅读有关ASP.NET脚本漏洞的内容,其中一条建议是:(
重点是我的;建议是网页中的"防止脚本漏洞利用"部分中的#3)

如果您希望应用程序接受某些HTML(例如,来自用户的某些格式化说明),则应在将HTML提交到服务器之前在客户端对其进行编码.有关更多信息,请参阅如何:通过将HTML编码应用于字符串来防止Web应用程序中的脚本漏洞.

这不是很糟糕的建议吗?我的意思是,一个开发者可以通过curl或类似的东西发送HTML,然后HTML将被编码发送到服务器,这可能不是很好(?)

我在这里遗漏了什么或者错误地解释了这个陈述吗?

asp.net security xss antixsslibrary

3
推荐指数
1
解决办法
856
查看次数

在ASP.NET 4.5中,我应该如何编码要用作JavaScript变量的字符串,以防止XSS攻击

我知道有几种方法可以做到这一点,但它们都有一些缺点.是否有"接受"的方式,这被认为是最好的?

我以前使用的Microsoft.Security.Application.AntiXss.JavaScriptEncode()是很棒的,但AntiXSS已经结束了,因为编码器现在包含在4.5中的.NET中.

但是,由于某种原因,System.Web.Security.AntiXss.AntiXssEncoder不包括该JavaScriptEncode方法.

System.Web.HttpUtility.JavaScriptStringEncode(),但它使用黑名单方法进行编码,因此它不太可能像白名单编码器一样好.

我已经看到了一些使用的建议System.Web.Script.Serialization.JavaScriptSerializer.Serialize(),但这只是打电话HttpUtility.JavaScriptStringEncode().

那么目前用于编码作为JS变量编写的值的最佳接受白名单方法是什么?

javascript asp.net xss antixsslibrary

3
推荐指数
1
解决办法
3709
查看次数

WebUtility.HtmlEncode 和 AntiXssEncoder.HtmlEncode 有什么区别?

AntiXssEncoder.HtmlEncode 仅支持.Net 框架。当我们的应用程序位于 .net core 2.1 中时,我可以使用 WebUtility.HtmlEncode 进行 Antixss 吗?

c# antixsslibrary asp.net-core-2.1

3
推荐指数
1
解决办法
2786
查看次数

我使用AntiXSS但我仍然可以破解页面

我不知道我是否正确行事.
我第一次构建一些东西来防止页面上的攻击.
我将从底部开始:
我有财产:

public string Description {get;set;}
Run Code Online (Sandbox Code Playgroud)

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

tinyMCE.init({
            mode: "textareas",
            theme: "advanced",
            encoding : "xml"...
Run Code Online (Sandbox Code Playgroud)

在控制器之前我将其保存在数据库中我做:

model.Description = HttpUtility.HtmlDecode(model.Description);
Run Code Online (Sandbox Code Playgroud)

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

<p>bla bla bla</p>
Run Code Online (Sandbox Code Playgroud)

我在我的项目中添加了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
        }
...
Run Code Online (Sandbox Code Playgroud)

当我从数据库显示数据时,我使用:

@Html.Raw(Model.Place.Description)
Run Code Online (Sandbox Code Playgroud)

它工作正常我只看到文字.没有Html标签.Breaklines工作正常.我可以用粗体,斜体等来设置文本样式.

但如果我进入:

<script>alert(open to attack);</script>
Run Code Online (Sandbox Code Playgroud)


我有警报窗口.
我不明白我需要做些什么才能防止这种情况发生?

xss asp.net-mvc tinymce antixsslibrary asp.net-mvc-3

2
推荐指数
1
解决办法
1795
查看次数

GetSafeHtmlFragment删除所有html标签

我在我的网站上使用GetSafeHtmlFragment,我发现除了<p><a>删除所有标签.

我研究过,我发现微软没有解决方案.

是否有任何取代它或有任何解决方案?

谢谢.

c# antixsslibrary

2
推荐指数
1
解决办法
5113
查看次数