我正在做一个 asp.net/c# 项目。目前我有一个带有标签控件lblData的网页来显示来自字符串变量的内容。请看下面的代码块:
string strData = "Data";
lblData.Text = strData;
当我运行 Parasoft 工具扫描项目时,我得到如下结果:
安全问题:防止敏感数据泄露
通过 Web 控件泄漏 ToString() 结果。
我认为我的代码违反了一些标准的安全实践,但我不确定如何修复它。非常感谢您的时间和帮助。
这是完整的代码,还是您简化了示例?我问是因为我无法对你的例子有任何违反。
将您的示例修改为以下内容后:
protected void Foo(object o)
{
string strData = "Data" + o.ToString() ;
lblData.Text = strData;
}
我收到以下违规行为:
违规:通过 Web 控制泄漏 ToString() 结果(“strData”)
要解决该违规问题,您需要验证公开的数据,这是通过在规则配置中定义验证方法并将数据传递给该方法来完成的(默认情况下,所有带有前缀“验证”的方法都被视为验证)所以如果你修改你的代码类似于:
protected void Foo(object o)
{
string strData = "Data" + o.ToString() ;
validateStrData(strData);
lblData.Text = strData;
}
private void validateStrData(string strData)
{
//some validating logic
}
则不应报告违规行为
尝试这个,
lblData.Text = strData.ToString();