支持的注释和属性

扫描期间将处理用于修饰代码的一些注释或属性。如果扫描期间在代码内找到受支持的注释或属性,那么会使用该信息将已修饰方法标记为受感染回调。标记为受感染回调的方法将被视为其所有参数都包含受感染的数据。这会使得跟踪发现更多内容。本帮助主题中列出了受支持的注释和属性。

支持的 Java™ 注释

表 1. 支持的 Java 注释
注释 缩写
javax.xml.ws.WebServiceProvider @WebServiceProvider
javax.jws.WebService @WebService
javax.jws.WebMethod @WebMethod

支持的 AppScan® 源 Java 注释

使用 AppScan 源 扫描 Java 时,支持 @ValidatorMethod@CallbackMethod@SuppressSecurityTrace 方法级别的注释。

使用 AppScan 源 注释

可通过以下步骤来使用注释:

  1. 缺省情况下,启用了注释的支持。注释 .jar 文件为 <install_dir>\lib\SecurityAnnotations.jar(其中 <install_dir>AppScan 源 的安装位置
  2. 如果要扫描预编译类、.war 文件或 .jar 文件,请找到包含附注释的源代码的 Java 项目。
  3. SecurityAnnotations.jar 添加到项目的类路径。
  4. 重新构建项目。

注释可在扫描之前添加到源代码,或在扫描之后和分类期间进行添加以识别和消除误报值。

提供注释是为了让您能够直接以安全性注释的形式在源代码中插入您的知识。因为注释可用于声明代码安全的部分,所以使用它们时应非常小心。它们不应用于会被扫描以查找安全漏洞的代码。如果使用注释,安全分析人员可通过禁用 <data_dir>\config\scanner.ozsettings(其中 <data_dir>AppScan 源 程序数据的位置,如安装和用户数据文件位置 中的功能来忽略这些注释。在此文件中,找到以下设置:

<Setting
name="process_security_annotations" 
value="true"
default_value="true" 
description="When turned on, security annotations in the 
     source code will be processed by AppScan Source." 
display_name="Process Security Annotations" 
type="bool" 
/> 

要禁用此功能,请将此设置从 value="true" 更改为 value="false"

@ValidatorMethod

验证器方法是对数据数据执行检查并通常返回代表输入是否有效的布尔值的方法。您可以将输入数据更改为可接受的格式,而不是接受或拒绝使用验证器的输入。这些方法称为清理器方法。

使用 @ValidatorMethod 注释,可以识别应用程序源代码中的所有验证器和清理器方法。在 AppScan 源 扫描期间,该信息将用于除去自数据被认为安全以来流经这些方法的数据流。

注: 当前,没有任何规定来指定附注释的方法的哪些参数应被认为是已经过验证的。在 AppScan 源 扫描期间,所有输入参数都将被认为已经过验证。

@SuppressSecurityTrace

将除去流经通过该注释标记的方法的所有跟踪。当特定跟踪组标识为误报或者不及其他跟踪重要或值得关注时,这非常有用。您可以使用该注释来过滤出这些跟踪或隐藏这些跟踪以减少混乱。

@CallbackMethod

该注释用于识别应用程序的回调或入口点。所有参数都被认为包含污点。

受支持的 Microsoft™ .NET 属性

表 2. 受支持的 Microsoft .NET 属性
属性 缩写
System.Web.Services.WebServiceAttribute WebService
System.Web.Services.WebMethodAttribute WebMethod