Asp.net AntiXSS-HtmlAttributeEncode用法

Asp.net AntiXSS-HtmlAttributeEncode用法,asp.net,xss,antixsslibrary,Asp.net,Xss,Antixsslibrary,我试图找出HTMLAttributeNCode可以使用的上下文- 我试着简单地说“你好!”将警报脚本设置为控件属性,这样我可以看到HtmlAttributeEncode的作用-但看不到在哪里可以使用HtmlAttributeEncode而不是HtmlEncode 比如说,我有 - a textbox for user input //txtuserInput.Text = <script>alert(document.cookie);</script> - an

我试图找出HTMLAttributeNCode可以使用的上下文-

我试着简单地说“你好!”将警报脚本设置为控件属性,这样我可以看到HtmlAttributeEncode的作用-但看不到在哪里可以使用HtmlAttributeEncode而不是HtmlEncode

比如说,我有

- a textbox for user input 
  //txtuserInput.Text = <script>alert(document.cookie);</script>

- an anchor control to show user input being set as one of its attribute value 
  In codebehind tried with - 
     myanchorTag.InnerText = txtuserInput.Text
     or
     myanchorTag.Id = txtuserInput.Text
-用于用户输入的文本框
//txtuserInput.Text=警报(document.cookie);
-一个锚控件,用于显示设置为其属性值之一的用户输入
在codebehind中,使用-
myanchorTag.InnerText=txtuserInput.Text
或
myanchorTag.Id=txtuserInput.Text
但我看不到此脚本正在运行:-(
我已经为TextBox.Text属性尝试过了,但我可以使用HtmlEncode

谁能给我引路


谢谢!

asp:Textbox控件自动转义.Text属性。请参阅


当您使用未缩放控件和构建原始html时,您应该使用HTMLAttributeNCode。

您使用的asp.net版本是什么?非常感谢您分享此列表-使事情更加清楚。但我仍然不太清楚HTMLAttributeNCode的用法。当您说原始html时,您是指在运行时创建控件,如“new HyperLink(){Text=Encoder.HtmlEncode(txtUserInput.Text)}。我尝试了一些其他控件,但在使用HtmlEncode和HTMLAttributencode时找不到任何区别。你是指“原始html”的其他内容吗?你能很好地使用HTMLAttributencode吗?假设你有一个:或者。在这两种情况下,如果你想设置title属性,你应该对其进行html属性编码。Wh在我看来,原始html是指通过连接字符串来构建html,然后以文本或类似的形式输出整个内容。如果您想了解为什么需要属性编码,请记住,对于属性,可以使用几种不同类型的引号引用。请参阅Owasp xss预防备忘单和www.unsecurelabs.org/Task/