当前位置: 首页 > 知识库问答 >
问题:

如何清理和验证用户输入以通过asp.netc#中的Checkmarx扫描

湛嘉歆
2023-03-14

在Checkmarx扫描中,我收到了易受攻击的例外,

获取dr元素的用户输入。然后,此元素的值在没有经过适当清理或验证的情况下流经代码,并最终在方法中显示给用户

 List<survey_bene> surveybenelist = new List<survey_bene>();
 cmd = new SqlCommand("SELECT ResondantCode FROM Respondant");
 DataTable dtdetails = vdm.SelectQuery(cmd).Tables[0];
 if (dtdetails.Rows.Count > 0)
 {
     foreach (DataRow dr in dtdetails.Rows)
      {
         survey_bene survey = new survey_bene();
         survey.resondantcode = dr["ResondantCode"].ToString();
         surveybenelist.Add(survey);
      }
 }

共有1个答案

方夜洛
2023-03-14

我在评论中的问题没有得到确切的回答,但我假设这是一个XSS漏洞。如果不是,那么我将相应地更新我的答案。

基于这一假设,您应该从HtmlServerUtility或HttpUtility类中调用HtmlEncode函数:

 List<survey_bene> surveybenelist = new List<survey_bene>();
 cmd = new SqlCommand("SELECT ResondantCode FROM Respondant");
 DataTable dtdetails = vdm.SelectQuery(cmd).Tables[0];
 if (dtdetails.Rows.Count > 0)
 {
     foreach (DataRow dr in dtdetails.Rows)
      {
         survey_bene survey = new survey_bene();
         survey.resondantcode = HttpUtility.HtmlEncode(dr["ResondantCode"].ToString());
         surveybenelist.Add(survey);
      }
 }
 类似资料:
  • 我在基于Struts 1.3的web项目上启动了checkmarx,它返回以下错误: 方法在获取表单元素的用户输入。然后,该元素的值在没有经过适当清理或验证的情况下流经代码,并最终在方法%中显示给用户 如何正确消毒或验证以满足检查玛斯的要求?

  • 我很难想出如何正确使用扫描仪来验证用户输入。例如,程序需要用户输入int,用户只能输入正数,如果用户输入“apple”、“delicious apple”或负数,问题将显示错误消息。我尝试了下面的代码,然后我发现了一个令人不安的问题,“那不是一个数字!”我不知道是什么引起了这些问题。。。。 我在“number=sc.nextInt()”下面加了一行代码,意外地解决了这个问题,现在我的代码变成: 这

  • 首先为标题感到抱歉,想不出别的了。我目前正在完成一个关于JetBrains Hyperskill的项目,该项目是一个单位转换器,用户可以在其中转换重量、长度和温度单位。我几乎完成的项目,转换工作很好,但我有一个问题与用户输入。 用户输入由以下部分组成: 因此,用户可以输入如下内容: null null -要转换的数量 -这应该是像“摄氏”和“摄氏度”这样的输入 -随机单词 -这也应该读取输入,如“

  • 我已经创建了一个控制台应用程序,现在开始将其转换为摇摆应用程序。我有一个问题,我搜索了很多次,但我没有找到任何答案。 我的应用程序有一个类来验证用户的输入,如果输入错误,它会向控制台发出错误消息。所以我尝试做的是,我有一个Jtextfield并验证这个输入,如果输入错误,它应该给我错误消息。 这是我的Input类,用户可以在其中编写 这是我的输出类方法 我只是想知道我可以使用输入类的验证,还是应该

  • 问题内容: 是否有某个功能全面的功能可以很好地用于清理用户针对SQL注入和XSS攻击的输入,同时仍然允许某些类型的HTML标签? 问题答案: 常见的误解是可以过滤用户输入。PHP甚至有一个(现在已弃用的)“功能”,称为magic-quotes,它基于此思想。废话 忘记过滤(或清洁,或任何人称呼它)。 为避免出现问题,您应该做的事情很简单:每当将字符串嵌入外部代码中时,都必须根据该语言的规则对其进行

  • 我让一个用户输入一个整数字符串,然后将它们添加到ArrayList,但我需要验证每个条目是否为正整数。我尝试了do/while循环、嵌套while环,而使用嵌套if和每个循环都会遇到自己的一组问题。 作为我当前设置的示例:用户输入例如:1 2 3 4 pageVar是我的扫描仪,pageRef是我的ArrayList 运行这个my while在等待更多的输入时被卡住了,我不知道如何打破它。