我有两个关于 Fortify 的问题。
1 - 假设我有一个 Windows 窗体应用程序,它要求输入用户名和密码,密码文本框的名称是 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 - 假设我有一个自定义 UI 控件。这个控件 html 对所有内容进行编码,在我的上下文中,它足以避免 XSS。不用说,它被 Fortify 标记了。当我的 UI 中有某种控件类型并且它的所有方法在我的上下文中对 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>
预先感谢您的帮助