【问题标题】:Fortify found hidden fields when I don't specify any当我没有指定任何内容时,强化发现的隐藏字段
【发布时间】:2020-01-25 20:39:06
【问题描述】:

Fortify 扫描显示我有隐藏字段。我没有在我的字段上指定隐藏属性,但我确实使用了 MaskedEditExtender。当响应返回到带有 MaskedEditExtender 的页面时,该字段具有隐藏属性。

<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 字段在响应中设置为隐藏。这些也可以取消隐藏吗?

【问题讨论】:

  • 隐藏字段有什么问题?您正在使用的 .net 框架将创建它需要的框架

标签: asp.net fortify


【解决方案1】:

Fortify 扫描显示我有隐藏字段

所以因为 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?

【讨论】:

  • 在我们的组织中,必须解决或审查 Fortify 报告的所有漏洞,并将其归类为误报。所以,我必须找出如何消除隐藏字段或记录它们是如何误报的。我也没有找到任何关于如何做的信息,所以这就是我在这个论坛上寻求帮助的原因。
  • @robertq 这是没有程序员设置规则时发生的情况。隐藏字段是安全的,需要在页面上添加更安全的验证。除非您完全更改 asp.net 上的所有内容,否则您无法避免它们
  • @Aristos,我完全不同意。我相信这是 ASP.Net WebForms 的一个问题。较新的软件框架完全避免了这个问题。使用隐藏字段时需要考虑许多漏洞。已经很久了,但我相信你可以在&lt;asp:HiddenField ID="" runat="server" Visible="false" /&gt;中使用Visible="false"
  • @JayJordan 如果添加 visible = false,则该字段的值将添加到 ViewState - 所以仍然存在“隐藏”。
  • @Aristos,是的。它主要适用于 ASP.Net WebForms。
【解决方案2】:

隐藏字段必须经过验证,fortify 可能仍将其视为漏洞,但这就是抑制的用武之地。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    • 2020-10-20
    相关资源
    最近更新 更多