Fortify нашел скрытые поля, когда я не указал ни одного

Сканирование 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"/>

Это то, что возвращается в ответе. Вы можете видеть, что у него есть скрытый атрибут, и 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 становятся скрытыми в ответе. Их тоже можно не скрывать?


person Robert Q    schedule 25.09.2019    source источник
comment
в чем проблема со скрытыми полями? Используемая вами платформа .net создаст те, которые ей нужны.   -  person zgood    schedule 25.09.2019


Ответы (2)


Сканирование Fortify показало, что у меня есть скрытые поля

поэтому, поскольку fortify жалуется, нам нужно удалить их все? конечно нет -
скрытые поля ввода нужны по многим причинам во многих случаях

даже на этой странице, которую вы просматриваете сейчас, есть скрытые поля ввода... все хорошо. Я не говорю игнорировать сообщение, но убедитесь, что эти поля ввода принадлежат вам, а не злоумышленнику.

связанные ответы
требуется разъяснение по __VIEWSTATE __EVENTVALIDATION __EVENTTARGET , __EVENTARGUMENT
CryptographicException: Заполнение недействительно и не может быть удалено, а проверка MAC-адреса состояния просмотра не удалась
Могут ли злоумышленники изменять состояние просмотра?

person Aristos    schedule 25.09.2019
comment
В нашей организации ВСЕ уязвимости, о которых сообщает Fortify, должны быть устранены или проверены и классифицированы как ложноположительные. Итак, я должен выяснить, как устранить скрытые поля или задокументировать, как они являются ложными срабатываниями. Я не нашел никакой информации о том, как это сделать, поэтому я прошу помощи на этом форуме. - person Robert Q; 25.09.2019
comment
@robertq вот что происходит, когда программисты не устанавливают правила. Скрытые поля безопасны и необходимы для более надежной проверки на странице. Вы не сможете их избежать, если полностью не измените все на asp.net. - person Aristos; 26.09.2019
comment
@Аристос, я совсем не согласен. Я считаю, что это проблема с ASP.Net WebForms. Более новые программные среды вообще избегают этой проблемы. Есть много уязвимостей, которые следует учитывать при использовании скрытых полей. Прошло много времени, но я считаю, что вы можете использовать Visible="false" в <asp:HiddenField ID="" runat="server" Visible="false" /> - person Jay Jordan; 15.05.2020
comment
@JayJordan Если вы добавите visible = false, значение этого поля будет добавлено в ViewState, поэтому оно все еще будет «скрытым». - person Aristos; 16.05.2020
comment
@JayJordan Я просто вижу случайную страницу Amazon - там более 30 скрытых значений ... вам нужны эти значения, чтобы делать что-то с кодом за кодом ... нет никаких уязвимостей из-за скрытого значения - легко может быть нет все равно спрятано и не видно - person Aristos; 16.05.2020
comment
@Аристос, да. Это относится в первую очередь к ASP.Net WebForms. - person Jay Jordan; 20.05.2020

Скрытые поля должны быть проверены, fortify может по-прежнему рассматривать это как уязвимость, но именно здесь вступает в действие подавление.

person Lacie    schedule 15.05.2020