Fortify扫描显示我有隐藏字段。我没有在字段中指定隐藏属性,但是我确实使用了MaskedEditExtender。当响应返回到带有MaskedEditExtender的页面时,该字段上具有hidden属性。
<ajaxToolkit:MaskedEditValidator ID="MaskedEditValidator2" runat="server"
ControlExtender="MaskedEditExtender2"
ControlToValidate="txt_EndDate"
IsValidEmpty="true"
InvalidValueMessage="Date is invalid"
Display="Dynamic"
MaximumValue="01/01/2030"
MinimumValue="01/01/2000"
Font-Size="X-Small"/>
这是响应中返回的内容。您可以看到它具有hidden属性,Fortify对此表示抱怨:
<input name="ctl00$ContentPlaceHolder1$txt_EndDate" type="text"
id="ctl00_ContentPlaceHolder1_txt_EndDate" class="DateTextBox" AutoComplete="off" style="width:90px;" />
<input type="hidden"
name="ctl00$ContentPlaceHolder1$MaskedEditExtender2_ClientState"
id="ctl00_ContentPlaceHolder1_MaskedEditExtender2_ClientState" />
...
此外,__VIEWSTATEGENERATOR和__EVENTVALIDATION字段已设置为在响应中隐藏。这些也可以隐藏吗?
答案 0 :(得分:0)
Fortify扫描显示我有隐藏字段
因此,由于要加强要诉求,我们需要将其全部删除?当然不是-
在许多情况下,出于多种原因需要隐藏的输入字段
即使您现在看到的此页面也具有隐藏的输入字段... 都很好。我并不是说要忽略此消息,而是要检查此输入字段是否由您提供,而不是来自任何攻击者。
相关答案
Clarification on __VIEWSTATE __EVENTVALIDATION __EVENTTARGET , __EVENTARGUMENT needed
CryptographicException: Padding is invalid and cannot be removed and Validation of viewstate MAC failed
Can malicious users modify viewstate?
答案 1 :(得分:0)
隐藏的字段必须经过验证,强化可能仍将其视为漏洞,但这是抑制的来源。