Pra*_*rma 2 c# asp.net security xss
我有以下代码:
label x = txtName.Text;
Run Code Online (Sandbox Code Playgroud)
当安全团队分析了dll时,他们说可以对上面的代码执行XSS攻击.我知道textbox Text属性不会阻止XSS攻击,所以我现在该怎么办?
以下修正案是否会解决问题?
label x = Server.HtmlEncode(txtName.Text);
Run Code Online (Sandbox Code Playgroud)
我假设你在谈论一个WebForms Label- 问题不明确(发布实际代码!)
这是ASP.NET WebForms设计的一个问题.许多元素都有一个名为的属性Text,但该属性根据元素执行不同的操作.
您希望设置Text控件将设置其纯文本内容.这种安全操作就是这个名称似乎意味着什么.这些控件就属于这种情况:
不幸的是,在一堆其他控件上,同名属性实际上在元素中设置了HTML标记.因此,如果你有一个文本字符串<b>,你会得到一些粗体文本而不是b一些尖括号中的字母.如果文本中包含诸如其中的字符串<script>,则代码将在浏览器上执行,从而导致安全问题.
其中一些不幸的不安全控件是:
要安全地使用它们,您必须对写入Text属性的所有内容进行HTML编码.
最后有一个控件可以双向摆动:
默认情况下,这会设置HTML标记(boo!),但如果设置了该Mode="Encode"属性,则会设置文本.
这当然是非常令人困惑的,没有办法设计一个Web框架,但这就是我们必须使用的东西.
我认为label x = txtName.Text;C# 无效。我假设你的意思是 a 的 IDx.Text = txtName.Text;在哪里。xLabel
这是一个问题,因为如果我<script>alert('XSS!')</script>在文本框中输入怎么办?我的输入可以呈现到页面并作为脚本执行。这个简单的例子可能行不通,但是有很多技巧可以让 XSS 发挥作用。
您可以通过在页面上显示之前对输入进行编码来解决此问题,我建议使用 Microsoft AntiXSS 来完成该任务。我也同意您应该询问您的安全团队如何修复它的评论。
| 归档时间: |
|
| 查看次数: |
3594 次 |
| 最近记录: |