首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >微软AntiXSS -需要解码吗?

微软AntiXSS -需要解码吗?
EN

Stack Overflow用户
提问于 2010-09-23 09:21:50
回答 3查看 7.3K关注 0票数 4

HttpUtility类同时提供编码和解码。但是,当我使用MS AntiXSS 3.1库时,我有一组仅用于编码的方法,这是否意味着可以避免解码?

例如

在应用AntiXSS之前:

代码语言:javascript
复制
lblName.Text = "ABC" + "<script> alert('Inject'); </script";

应用AntiXSS后:

代码语言:javascript
复制
lblName.Text = AntiXSS.HTMLEncode("ABC" + "<script> alert('Inject'); </script");

因此,在应用编码之后,HTML标记显示在我的Label控件中。

这是我们想要的结果吗?

EN

回答 3

Stack Overflow用户

发布于 2015-01-23 04:18:53

可以使用HttpUtility.HtmlDecode方法对AntiXss编码的文本(或任何编码的文本)进行解码。不需要显式的AntiXss解码。

票数 4
EN

Stack Overflow用户

发布于 2010-09-23 10:56:32

这取决于你的输入是从哪里来的,以及你想用它做什么。很多时候,框架会在你看到Request.Form、Request.QueryString等东西之前为你解码。

如果你从其他地方读取一个编码的字符串,比如数据库,那么你可能想要解码它,否则你会看到双重编码,例如;

代码语言:javascript
复制
I 3> AntiXSS encoded once becomes

I 3&gt; AntiXSS which then becomes after double encoding

I 3&amp;gt; AntiXSS

这可能会产生意想不到的副作用,这取决于消耗输出的内容。解码直到字符串不再改变的行为是规范化的一个例子。

票数 3
EN

Stack Overflow用户

发布于 2010-09-23 19:20:21

是的,我认为这是期望的输出。这是因为脚本没有执行。如果脚本已经执行,将显示一个警告,而不是脚本标记。所以这是安全的代码。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3774776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档