asp.net 2.0版中的“资源注入”固定

时间:2013-12-19 17:55:52

标签: asp.net code-injection

使用“资源注入”工具进行扫描时,我遇到了漏洞。

我无法找到此问题的解决方案。 我正在使用以下代码

Me.FileUploadImg1.SaveAs(Me.Server.MapPath(“〜”)&“\”& System.Configuration.ConfigurationSettings.AppSettings(“library_video”)&“\”&“E”& EventID&“\”&“A”& HttpUtility.HtmlEncode(txtAlbumID.Value)& “\”& HttpUtility.HtmlEncode(filenameonly))

该工具建议采用以下解决方案:

修复建议: 修复XSS的最简单方法是验证来自外部源的所有信息(即用户,基础设施,外部实体或 数据库系统)。数据验证可确保数据不包含脚本。验证数据有两种主要方法:过滤 所有输入和转义所有输出。

过滤所有输入 解决此漏洞的最安全且可能最有效的方法是仅接受被视为有效且拒绝的数据 其他一切,被称为“积极”或“白名单”过滤。例如,如果输入数据应该是数字,那么请确保这是数字 通过拒绝任何非输入的情况。除了拒绝所有数据之外,还可以使用清理例程来检查是否存在 特殊字符,并用其他字符替换每个字符,例如空格。 正过滤的弱替代方案是“否定”或“黑名单”过滤。这是一种危险的策略,因为可能存在坏数据集 可能是无限的。采用这种策略意味着必须永远保持“已知坏”字符和模式列表,并且 根据定义,一个人会有不完全的保护 与过滤和转义相关的清理操作通常涉及丢弃,拒绝,替换,替换,翻译和编码 受污染的输入或输出。 转义所有输出 在某些情况下,我们不能依赖过滤来丢弃或拒绝数据,因为要求用户提供输入内容 包括特殊字符。要使用未确诊的字符或脚本处理特殊输入内容,通常建议使用转义 允许将编码字符流转换为无法执行的特殊字符集序列的机制 意外地由服务器或客户端。

请解决此问题的c#代码中的一些解决方案。

1 个答案:

答案 0 :(得分:0)

在不知道你正在使用什么工具或它是如何工作的情况下,我不确切地知道它正在寻找什么,但是从错误消息来看,你似乎并不关心你是否在验证可能的脚本内容的输入,而是直接使用它。

它可能是它所关注的AppSettings,但它更可能是txtAlbumID.Value。

您可能需要查看此文章:http://www.drdobbs.com/windows/prevent-cross-site-scripting-in-aspnet-w/240148552