2013-10-04 35 views
1

我有两个关于强化的问题。如何抑制强化中的误报

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> 

预先感谢您的帮助

回答

1
  1. 这是使用正则表达式解析。除非你认为你能够创建一个可以正确解析人类语言的正则表达式,否则我会放弃它,只是将其视为不是问题。

  2. Pattern标签在正文中使用了一个java正则表达式,所以应该使用user2867433提示。但是,你说

这个控制HTML编码的一切,在我的背景下,这是不够好,以避免XSS

如果你要使用自定义规则,这有承担它可以在EVERY环境中工作,就像将来有人写了一段使用get_Text的代码,然后将其直接放入一段JavaScript中,HTML编码在这里将不会阻止XSS问题。我会再次建议审核此问题,因为所使用的验证不是问题或误报,并解释为什么它在此情况下足够好了

+0

谢谢您,我最终放弃了他们并审核不是问题 – freud

0

在“模式”,您可以使用Java的正则表达式。所以它应该工作,如果你使用[gs] et_Text

+0

谢谢您的输入 – freud