У меня есть два вопроса относительно Fortify.
1. Допустим, у меня есть приложение Windows Forms, которое запрашивает имя пользователя и пароль, а имя текстового поля для пароля — texboxPassword. Итак, в файле дизайнера у вас есть следующее, созданное дизайнером.
// // texboxPassword // this.texboxPassword.Location = new System.Drawing.Point(16, 163); this.texboxPassword.Name = "texboxPassword"; this.texboxPassword.Size = new System.Drawing.Size(200, 73); this.texboxPassword.TabIndex = 3;
Fortify помечает это как пароль в комментариях. Как я могу подавить это, создав собственное правило? Я не хочу скрывать всю проблему, потому что я все еще хотел бы улавливать определенные шаблоны (например, пароль, за которым следует = или : в комментариях), но общий поиск, когда любая строка, содержащая пароль, помечается, создает так много ложных срабатываний. Я изучил создание структурного правила, но не смог понять, как удалить связанный тег (где я могу найти тег для пароля в комментарии?)
2 - Допустим, у меня есть настраиваемый элемент управления пользовательского интерфейса. Этот контрольный html кодирует все, и в моем контексте этого достаточно, чтобы избежать XSS. Излишне говорить, что Fortify помечает это. Как я могу подавить XSS, когда у меня есть определенный тип элемента управления в моем пользовательском интерфейсе, и все его методы безопасны для XSS (они дезинфицируют) в моем контексте? Я попробовал DataflowCleanseRule (с меткой только для проверки концепции) и хотел пометить get_Text() и set_Text() как функции дезинфицирующего средства, но это не имело значения, и Fortify по-прежнему помечал его для XSS.
<DataflowCleanseRule formatVersion="3.16" language="dotnet">
<RuleID>0D495522-BA81-440E-B191-48A67D9092BE</RuleID>
<TaintFlags>+VALIDATED_CROSS_SITE_SCRIPTING_REFLECTED,+VALIDATED_CROSS_SITE_SCRIPTING_PERSISTENT,+VALIDATED_CROSS_SITE_SCRIPTING_DOM,+VALIDATED_CROSS_SITE_SCRIPTING_POOR_VALIDATION</TaintFlags>
<FunctionIdentifier>
<NamespaceName>
<Pattern>System.Web.UI.WebControls</Pattern>
</NamespaceName>
<ClassName>
<Pattern>Label</Pattern>
</ClassName>
<FunctionName>
<Pattern>_Text</Pattern>
</FunctionName>
<ApplyTo implements="true" overrides="true" extends="true"/>
</FunctionIdentifier>
<OutArguments>return</OutArguments>
</DataflowCleanseRule>
Заранее спасибо за вашу помощь