AWS WAF 移动软件开发工具包规范 - AWS WAF、AWS Firewall Manager、AWS Shield Advanced 和 AWS Shield 网络安全分析器

介绍 AWS WAF 的全新控制台体验

现在,您可以使用更新后的体验访问控制台中任意位置的 AWS WAF 功能。有关更多详细信息,请参阅 使用更新的控制台体验

AWS WAF 移动软件开发工具包规范

本节列出了最新可用版本的 AWS WAF 移动软件开发工具包的软件开发工具包对象、操作和配置设置。有关令牌提供程序和操作如何处理各种配置设置组合的详细信息,请参阅 AWS WAF 移动软件开发工具包的工作原理

WAFToken

持有 AWS WAF 令牌。

getValue()

检索 WAFTokenString 表示形式。

WAFTokenProvider

在您的移动应用程序中管理令牌。使用 WAFConfiguration 对象实施此目的。

getToken()

如果启用了后台刷新,则会返回缓存的令牌。如果禁用了后台刷新,则会对 AWS WAF 进行同步阻塞调用以检索新令牌。

loadTokenIntoProvider(WAFToken)

将指定的令牌加载到 WAFTokenProvider,替换提供者管理的所有令牌。令牌提供者具备新令牌的所有权,并负责日后对其进行刷新。如果在 WAFConfiguration 中启用 setTokenCookie,此操作还会更新 cookie 存储中的令牌。

onTokenReady(WAFTokenResultCallback)

指示令牌提供程序刷新令牌并在活动令牌准备就绪时调用提供的回调。当令牌被缓存并准备就绪时,令牌提供程序将在后台线程中调用您的回调。在应用程序首次加载和恢复活动状态时调用此函数。有关返回活动状态的更多信息,请参阅 在应用程序处于非活动状态后检索令牌

对于 Android 或 iOS 应用程序,您可以设置 WAFTokenResultCallback 为希望令牌提供程序在请求的令牌准备就绪时调用的操作。您的 WAFTokenResultCallback 实施必须采用参数 WAFTokenSdkError。对于 iOS 应用程序,您可以交替创建内联函数。

storeTokenInCookieStorage(WAFToken)

指示 WAFTokenProvider 将指定的 AWS WAF 令牌存储到软件开发工具包的 Cookie 管理器中。默认情况下,只有在首次获取令牌和刷新令牌时,才会将其添加到 Cookie 存储中。如果应用程序出于任何原因清除了共享 Cookie 存储,则在下次刷新之前,软件开发工具包不会自动重新添加 AWS WAF 令牌。

WAFConfiguration

保存 WAFTokenProvider 实施的配置。实施此操作时,您需要提供保护包(web ACL)的集成 URL、要在令牌中使用的域名以及您希望令牌提供程序使用的任何非默认设置。

以下列表指定了可以在 WAFConfiguration 对象中管理的配置设置。

applicationIntegrationUrl

应用程序集成 URL。从 AWS WAF 控制台或通过 getWebACL API 调用获取。

必需:是

类型:应用程序专用 URL。对于 iOS,请参阅 iOS URL。对于 Android 系统,请参阅 java.net URL

backgroundRefreshEnabled

表示您是否希望令牌提供程序在后台刷新令牌。如果您设置了此选项,则令牌提供程序会根据管理自动令牌刷新活动的配置设置在后台刷新您的令牌。

必需:否

类型:Boolean

默认值:TRUE

domainName

要在令牌中使用的域名,用于令牌获取和 Cookie 存储。例如,example.comaws.amazon.com。这通常是与保护包(web ACL)关联的资源的主机域,您将在其中发送 web 请求。对于 ACFP 托管规则组 AWSManagedRulesACFPRuleSet,这通常是一个与您在规则组配置中提供的账户创建路径中的域相匹配的单个域。对于 ATP 托管规则组 AWSManagedRulesATPRuleSet,这通常是一个与您在规则组配置中提供的登录路径中的域相匹配的单个域。

不允许使用公共后缀。例如,您不能使用 gov.auco.uk 作为令牌域。

根据受保护的主机域和保护包(web ACL)的令牌域列表,该域必须是 AWS WAF 可以接受的域。有关更多信息,请参阅 AWS WAF 保护包(web ACL)令牌域列表配置

必需:是

类型:String

maxErrorTokenRefreshDelayMsec

尝试失败后,重复令牌刷新之前等待的最长时间(以毫秒为单位)。对于失败尝试的每次自动重试,都会添加指数回退,直至给定的输入延迟时间。此值在令牌检索失败且重试 maxRetryCount 次后使用。

必需:否

类型:Integer

默认值:5000(5 秒)

允许的最小值:1(1 毫秒)

允许的最大值:30000(30 秒)

maxRetryCount

请求令牌时使用指数回退执行的最大重试次数。

必需:否

类型:Integer

默认值:Infinity

允许的最小值:0

允许的最大值:100

setTokenCookie

表示您是否希望 SDK 的 cookie 管理器在请求或其他区域中添加令牌 cookie。

使用 TRUE 值:

  • cookie 管理器会向路径在 tokenCookiePath 中所指定路径之下的所有请求添加令牌 cookie。

  • 除将令牌加载到令牌提供程序以外,WAFTokenProvider 操作 loadTokenIntoProvider() 还会更新 cookie 存储中的令牌。

必需:否

类型:Boolean

默认值:TRUE

tokenCookiePath

setTokenCookieTRUE 时使用。表示您希望软件开发工具包的 Cookie 管理器在其中添加令牌 Cookie 的顶级路径。管理员会将令牌 Cookie 添加到您发送到该路径的所有请求以及所有子路径中。

例如,如果您将其设置为 /web/login,则管理器将包含发送到 /web/login 的所有内容及其任何子路径的令牌 Cookie,例如 /web/login/help。它不包括发送到其他路径的请求的令牌,例如 //web/web/order

必需:否

类型:String

默认值:/

tokenRefreshDelaySec

用于背景刷新。后台令牌刷新之间的最长时间(以秒为单位)。

必需:否

类型:Integer

默认值:88

允许的最小值:88

允许的最大值:300(5 分钟)

AWS WAF 移动 SDK 错误

本节列出当前 AWS WAF 移动 SDK 版本可能出现的错误。

SdkError

无法检索令牌时返回的错误类型。Android SDK 和 iOS SDK 的错误类型相同。

AWS WAF 移动 SDK 存在以下错误类型:

invalidChallenge

当令牌服务器返回无效的质询数据,或者响应 blob 被攻击者改变时,就会返回此错误。

errorInvokingGetChallengeEndpoint

当令牌服务器向客户端发送不成功的响应代码或出现网络错误时,就会返回此错误。

invalidVerifyChallengeResponse

当从 AWS WAF 服务器的验证响应中检索 aws-waf-token 时或服务器响应被篡改时出现错误,就会返回此错误。

errorInvokingVerifyEndpoint

当客户端收到 AWS WAF 服务器的错误响应或验证已解决的质询时出现网络错误,就会返回此错误。

internalError

SDK 本身可能发生的所有其他错误都会返回此错误。

socketTimeoutException

当检索令牌时出现网络错误,通常会返回此错误。

此错误可能由于下列原因导致:

  • 网络带宽低:确认您的网络连接设置

  • 突变的应用程序集成 URL:确认与 AWS WAF 控制台上显示的内容相比,集成 URL 未进行修改