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

循环条件的未检查输入

杨乐
2023-03-14

我得到未经检查的输入循环条件在下面的行在我的代码。

String FirstName= request.getParameter("FirstName") !=null ?request.getParameter("FirstName"):"";

我提供了下面的解决方案,但检查马克斯扫描仍然显示相同的错误。

if(!FirstName.equals("")){
FirstName=ESAPI.validator().getValidInput("requestParameter",FirstName,"HTTPParameterValue", 2000, true);
}

我也使用了getValidinteger()方法,但这两种方法似乎都没有解决这个问题。

这是循环--

ArrayList<String> userDetails = UserData.getDetails(FirstName);

for(int i=0;i<=userDetails.size();i++){
   String rollno=userDetails.get(0)!=null?userDetails.get(0):"";
   String subject=userDetails.get(1)!=null?userDetails.get(1):"";
}

共有1个答案

邵博远
2023-03-14

而用户的详细信息。大小似乎不是恶意用户可以控制或影响的(查看UserData.getDetails只会提供一组修复项),验证userDetails仍然是一个好主意。任何潜在风险的大小可能会无意中增加到非常大的数量,从而导致拒绝服务。

因此,不是验证名字,而是检查Arraylist的大小

static final int MAXSIZE = 2000;
int arraySize = userDetails.size(); 
if (arraySize > MAXSIZE) { // todo  }

for(int i=0;arraySize;i<=i++){
   String rollno=userDetails.get(0)!=null?userDetails.get(0):"";
   String subject=userDetails.get(1)!=null?userDetails.get(1):"";
}
 类似资料:
  • 我有一个类,其中我们将“两个时态对象之间的时间量”存储到一个长变量monthBt中,并将其用作“for循环”中的测试表达式。然而,我在azure sechub中收到中级安全警告“未检查循环条件的输入”。 验证和删除警告的最佳方法是什么?谢谢

  • 我收到循环条件检查问题的未检查输入 我尝试了推荐的代码处理,但它对我不起作用。 检查马克思报告的描述: 我尝试了下面的代码:

  • 问题内容: 我的问题是关于在哪些Java检查的条件for循环时,有一个print语句的顺序做 在 该循环的“条件”。这似乎是不切实际的事情(我从未见过以任何实际方式使用它),尽管我对打印的内容缺乏理解,使我认为我可能不完全了解for循环的功能。在最近的一次考试中出现了以下问题: 输入n = 5时,以下方法将打印什么? 正确的答案是:0 1 2 3 4 5 在我看来,该循环应该打印-1,然后将i递增

  • 元素exchangeRateRequest在代码中流动,没有经过验证,最终在ExchangeRateService的getPreviousBusinessDate中的循环条件中使用。JAVA这构成循环条件的未检查输入。 我该怎么解决这个问题?

  • 3.2.1 无循环变量的DO构造 a) 一般形式 这种DO构造形式非常简单,一般形式为: [构造名:] DO 块 END DO 不带循环控制变量的DO构造控制机制为:进入DO构造体后,从DO语句下面第一句执行起顺次执行到END DO前的最后一句,再返上来从DO语句下面第一句执行起,重复执行整个DO块。如此反复执行DO块,其间如遇到EXIT语句,就停止执行DO块,退出循环,转向执行END DO下面的

  • 问题内容: 这里的Python新手非常抱歉,我确定这是一个愚蠢的问题,但是我似乎无法在要求我使用while循环检查有效用户输入的教程中解决以下挑战。 (使用Python2.7) 这是我的代码,但无法正常工作: 上面打印输出到控制台: 这显然是不正确的-循环应该在用户输入“ y”或“ n”时结束,但是我不确定如何执行此操作。我在这里做错了什么? 注意:挑战要求我同时使用运算符和 问题答案: 较短的解