All Products
Search
Document Center

Web Application Firewall:API security policy configuration

Last Updated:Mar 31, 2026

API Security lets you configure built-in and custom policies across nine areas: risk detection, security events, sensitive data, authentication credentials, business purposes, allowlists, lifecycle management, log subscriptions, and effective objects. These policies improve detection accuracy, reduce false positives, and help you respond to threats against your API assets.

Key concepts

ConceptDescription
RiskA vulnerability in an API caused by defects in development, management, or configuration. A risk does not mean an attack has occurred.
Security eventAn abnormal call or attack on an API, such as a brute-force attack on a login API or a message flooding attack on an SMS API.

1. Risk detection configuration

Built-in risk detection policies cover common vulnerability categories. For each built-in policy, you can enable or disable it and set its risk level to Low, Medium, or High.

In addition to built-in policies, you can create up to 20 custom risk detection policies.

Create a custom risk detection policy

  1. On the API Security page, go to Policy Configurations > Risk Detection Configurations.

  2. In the Custom Policy section on the left, click New.

  3. In the panel that appears, configure the following parameters.

    ParameterDescription
    Risk statusSet the policy status. The default value is On.
    Risk nameSet a name for the custom risk. The name can contain Chinese characters, uppercase and lowercase letters, digits, periods (.), underscores (_), and hyphens (-).
    SuggestionsSet the recommended action for the custom risk policy based on your business needs.
    Risk levelSet the risk level. Valid values: Low, Medium, and High.
    Check configurationsSet the detection conditions. You can add up to 10 conditions.
  4. Click OK.

Match content for Risk Detection Configurations is case-sensitive. You can enter up to 50 values per field. Press Enter after each value.

Detection condition reference

The following table lists all supported match fields and their logical operators.

Match fieldSub-conditionLogical operatorsMatch content
Domain NameNot supportedIs one of / Contains no value / Is one of (exact match) / Is not one of (exact match)Enter up to 50 values. Press Enter after each value.
APINot supportedIs one of / Is not one of / Is one of (exact match) / Is not one of (exact match)Enter up to 50 values. Press Enter after each value.
Request MethodNot supportedIs one of (exact match) / Is not one of (exact match)Select one or more methods: GET, POST, DELETE, PUT.
User-AgentNot supportedCan be one of / Contains no value / Is one of (exact match) / Is not one of (exact match)Enter up to 50 values. Press Enter after each value.
RefererNot supportedContains one or more values / Contains no value / Is one of (exact match) / Is not one of (exact match)Enter up to 50 values. Press Enter after each value.
Communication ProtocolNot supportedEqualsSelect HTTP or HTTPS.
Request Content-TypeNot supportedIs one of / Contains no valueEnter up to 50 values. Press Enter after each value.
Request LengthNot supportedEquals / Is less than / Is greater thanEnter an integer from 0 to 8192.
Response Content-TypeNot supportedIs one of / No valueEnter up to 50 values. Press Enter after each value.
Response LengthNot supportedEquals / Is less than / Is greater thanEnter an integer from 0 to 8192.
HTTP Status CodeNot supportedIs one of (exact match) / Is not one of (exact match)Enter up to 50 values. Press Enter after each value.
Request HeaderCustom HeaderExists / Does not exist / Length is / Length is less than / Length is greater than / Is one of / Contains no value
Cookie ParameterCustom Cookie-ExactExists / Does not exist / Length is / Length is less than / Length is greater than / Is one of / Contains no value
GET ParameterCustom ParameterExists / Does not exist / Length is / Length is less than / Length is greater than / Is one of / Is not one of
POST ParameterCustom Post-ArgExists / Does not exist / Length is / Length is less than / Length is greater than / Contains one or more values / Is not one of
Response HeaderResponse HeaderExists / Does not exist / Length is / Length is less than / Length is greater than / Is one of / Contains no value
Response ParameterResponse ParameterExists / Does not exist / Length is / Length is less than / Length is greater than / Is one of / Contains no value
PurposeNot supportedIs one of / Contains no valueSelect one or more business purposes. For available types, see How API Security classifies API business purposes.
Service ObjectNot supportedContains any of / Contains no valueSelect one or more service objects. For available types, see How API Security classifies API service objects.
AuthenticationNot supportedIsYES or NO
Request Sensitive Data TypeNot supportedContains any of / Contains no value / Number of types is greater thanSelect one or more sensitive data types. For the "number of types is greater than" condition, enter an integer from 0 to 8192.
Sensitivity Level of Request Sensitive DataNot supportedContains any of / Contains no valueSelect one or more levels from S1 to S4.
Response Sensitive Data TypeNot supportedContains any of / Is not one of / Number of types is greater thanSelect one or more sensitive data types. For the "number of types is greater than" condition, enter an integer from 0 to 8192.
Sensitivity Level of Response Sensitive DataNot supportedContains any of / Is not one ofSelect one or more levels from S1 to S4.
Response Sensitive DataSelect one or more response sensitive data types.Count is greater thanEnter an integer from 0 to 8192.
Source LocationNot supportedEqualsCN / NOT-CN
IPNot supportedBelongs to / Does not belong toEnter an IP address or CIDR block (for example, 1.1.X.X/24). Regular expressions are not supported. Enter up to 50 values, separated by commas or Enter.
Account (security events only)Not supportedIs one of (exact match) / Is not one of (exact match)Enter up to 50 values. Press Enter after each value.

2. Security event configuration

Built-in security event policies detect attacks based on IP address and account dimensions. When a built-in policy triggers an alert, subsequent attacks of the same type update the attack time of the original alert rather than generating a new alert. The alert level may change based on factors such as attack volume.

Built-in policies are read-only. You cannot edit or delete them.

In addition to built-in policies, you can create up to 10 custom security event policies.

Create a custom security event policy

  1. On the API Security page, go to Policy Configurations > Security Event Configurations.

  2. In the Custom Policy section on the left, click New.

  3. In the panel that appears, configure the following parameters.

    ParameterDescription
    Event statusSet the policy status. The default value is On.
    Event nameSet a name for the custom event. The name can contain Chinese characters, uppercase and lowercase letters, digits, periods (.), underscores (_), and hyphens (-).
    SuggestionsSet the recommended action based on your business needs.
    Event levelSet the risk level. Valid values: Low, Medium, and High.
    Match conditionSet the detection conditions. You can add up to 10 conditions. If you define multiple conditions, a rule is triggered only when all conditions are met.
    Rate limitingSet Statistical Object to IP or Account. Set Statistical Period in minutes, with a maximum of 15 minutes. Set Requests to a positive integer.
    Data statisticsSet statistical conditions. You can add up to 10 conditions.
  4. Click OK.

Match content for Security Event Configurations is case-sensitive. You can enter up to 50 values per field. Press Enter after each value.

For match condition fields and operators, see the detection condition reference in the risk detection section.

Data statistics condition reference

Match fieldSub-conditionLogical operatorsMatch content
Status Code StatisticsStatus code (integer from 100 to 600)Value greater thanEnter an integer from 0 to 8192.
Request HeaderCustom HeaderDistinct less than / Distinct equals / Distinct greater thanEnter an integer from 0 to 8192.
Cookie ParameterCustom Cookie-ExactDistinct less than / Distinct equals / Distinct greater thanEnter an integer from 0 to 8192.
GET ParameterCustom ParameterDistinct less than / Distinct equals / Distinct greater thanEnter an integer from 0 to 8192.
POST ParameterCustom Post-ArgDistinct less than / Distinct equals / Distinct greater thanEnter an integer from 0 to 8192.
Response Sensitive Data TypeSelect one or more response sensitive data types.Distinct less than / Distinct equals / Distinct greater thanEnter an integer from 0 to 8192.
Sensitivity Level of Response Sensitive DataSelect one or more response sensitive data levels.Distinct greater thanEnter an integer from 0 to 8192.
Source IP CountSet the value for source IP count statistics.Value greater thanEnter an integer from 0 to 8192.

3. Sensitive data configuration

On the Sensitive Data-related Configurations tab of the Policy Configurations page, you can search, filter, and view sensitive data policies.

Data masking

The De-identification Display switch controls whether sensitive data is masked in the console. It is disabled by default.

When enabled, the following data is masked:

  • In Risk Details and API Details: sensitive data in all request and response sample fields is replaced with a placeholder such as {{Phone}}.

  • In Event Details: request and response data samples that contain sensitive data are masked as {}.

  • In sample information: Request Cookie is masked as {{Cookie}}, a Request Header containing a token is masked as {{XXXToken}}, and Response Set-Cookie is masked as {{SetCookie}}.

Masking applies as follows:

  • Risk Details and API Details: applies only to new request and response data samples.

  • Event Details: applies to both new and existing request and response data samples.

Built-in policies

Built-in sensitive data policies are read-only. You can enable or disable them, but cannot edit or delete them.

Create a custom sensitive data policy

If your business uses custom sensitive data types, create custom detection rules. You can create up to 20 custom policies.

  1. On the API Security page, go to Policy Configuration > Sensitive Data-related Configurations.

  2. Click Create Policy.

  3. In the panel that appears, configure the following parameters. You can use Basic mode or Expert mode.

    ParameterDescription
    NameSet a name for the rule. The name can contain Chinese characters, uppercase and lowercase letters, digits, periods (.), underscores (_), and hyphens (-).
    ModeBasic: Provides a simple interface. Set Characters (one or more character types: digits, uppercase letters, lowercase letters) and Length (range: 6–64, integer start and end values). Expert: Supports regular expressions. Enter a regular expression for detection. To avoid false positives, make sure the expression matches at least 6 characters.
    Sensitivity levelSet the sensitivity level. Valid values: S1, S2, S3, and S4. For details, see What sensitive data can API Security detect.
  4. Click OK.

4. Authentication credential configuration

If your APIs use non-standard fields or fields with weak naming patterns (such as all-numeric names) for authentication, built-in credential detection may miss them. Create custom authentication credential policies to specify the parameter names that carry credentials. This improves the accuracy of unauthenticated risk detection.

Create a custom authentication credential policy

  1. On the API Security page, go to Policy Configuration > Authentication Credential Configurations.

  2. Click Create Policy.

  3. Configure the following parameters, then click OK.

    ParameterDescription
    NameSet a name for the policy. The name can contain Chinese characters, uppercase and lowercase letters, digits, periods (.), underscores (_), and hyphens (-).
    Match conditionEach condition consists of a Match Field, a Logical Operator, and Match Content. Add up to 10 conditions, including at least one for Request Header, Request Cookie, Request Query, or Request Body. If you define multiple conditions, a rule is triggered only when all conditions are met.
Match content for Authentication Credential Configurations is case-sensitive. You can enter up to 50 values per field. Press Enter after each value.

Match condition reference

Match fieldSub-conditionLogical operators
Domain NameNot supportedContains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any value
APINot supportedContains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any value
Request HeaderCustom HeaderExists / Length equal to / Length less than / Length greater than
Request CookieCustom Cookie-ExactExists / Length equal to / Length less than / Length greater than
Request QueryCustom ParameterExists / Length equal to / Length less than / Length greater than
Request BodyCustom Post-ArgExists / Length equal to / Length less than / Length greater than

5. Business purpose configuration

Business purpose policies classify APIs by their function—for example, login, registration, SMS sending, or file download. Accurate classification improves detection in business-specific scenarios.

API Security provides two types of business purpose policies:

  • Built-in policies: Cover common scenarios such as data updates, data sharing, text message sending, and information sending. You can enable or disable built-in policies, but cannot modify or delete them.

  • Custom policies: Let you define custom URL and parameter name patterns for scenarios not covered by built-in policies.

Create a custom business purpose policy

  1. On the API Security page, go to Policy Configuration > Business Purpose.

  2. Click the Custom Policy tab, then click Create Policy.

  3. Configure the match conditions, then click OK.

Match content for Business Purpose is case-sensitive. You can enter up to 50 values per field. Press Enter after each value.

Match condition reference

Match fieldLogical operatorsMatch content
Domain NameContains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any valueEnter up to 50 values. Press Enter after each value.
APIContains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any valueEnter up to 50 values. Press Enter after each value.
Request Header Parameter NameContains one of multiple values / Equals one of multiple valuesEnter up to 50 values. Press Enter after each value.
Request Cookie Parameter NameContains one of multiple values / Equals one of multiple valuesEnter up to 50 values. Press Enter after each value.
Request Query Parameter NameContains one of multiple values / Equals one of multiple valuesEnter up to 50 values. Press Enter after each value.
Request Body Parameter NameContains one of multiple values / Equals one of multiple valuesEnter up to 50 values. Press Enter after each value.
Request Sensitive Data TypeEquals one of multiple values / Does not equal any valueSelect one or more request sensitive data types.
Response Sensitive Data TypeEquals one of multiple values / Does not equal any valueSelect one or more response sensitive data types.
Response Parameter NameContains one of multiple values / Equals one of multiple valuesEnter up to 50 values. Press Enter after each value.

6. Allowlist configuration

Allowlists let you suppress alerts from known-safe sources—for example, traffic from your office network's egress IP address. You can create allowlists for risk detection and security events separately.

Create an allowlist policy

  1. On the API Security page, go to Policy Configuration > Configure Whitelist.

  2. Click Create Policy, enter a name, and select the feature type: Risk Detection or Security Events.

  3. Set match conditions based on the feature type, then select the risk or event types to ignore, and click OK.

You can add up to 10 match conditions. Match conditions for Configure Whitelist are case-sensitive. You can select multiple built-in and custom types to ignore.

Risk detection allowlist match conditions

Match fieldLogical operatorsMatch content
Domain NameContains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any valueEnter up to 50 values. Press Enter after each value.
APIContains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any valueEnter up to 50 values. Press Enter after each value.

Security event allowlist match conditions

Match fieldLogical operatorsMatch content
Domain NameContains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any valueEnter up to 50 values. Press Enter after each value.
APIContains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any valueEnter up to 50 values. Press Enter after each value.
IPBelongs to / Does not belong toEnter an IP address or CIDR block (for example, 1.1.X.X/24). Regular expressions are not supported. Enter up to 50 values, separated by commas or Enter.
AccountContains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any valueEnter up to 50 values. Press Enter after each value.

7. Lifecycle management

API lifecycle management lets you define what counts as an inactive API, so you can identify and act on APIs that are no longer actively used. Inactive APIs can be exploited if left unaddressed.

Configure inactive API criteria

  1. On the API Security page, go to Policy Configuration > Lifecycle Management.

  2. Set the criteria for inactive APIs, then click OK.

    • Built-in model: An API is considered inactive if it has not been accessed or its access volume has dropped significantly over the past 8 days.

    • Custom: Set the daily access volume threshold and duration (up to 31 days). An API is considered inactive if its daily access count stays below the specified value for the entire duration.

Important

If an asset's Last Active Time exceeds 30 days, the system automatically deletes the asset along with its associated risk data and security event records.

8. Log subscription

Log subscription delivers API Security logs to a Logstore in Simple Log Service (SLS), where you can centrally manage, query, and analyze them.

Three log types are available: asset information, risk information, and attack event information.

WAF instances in the Chinese mainland can deliver logs only to SLS Logstores in the Chinese mainland. WAF instances outside the Chinese mainland can deliver logs only to SLS Logstores outside the Chinese mainland. Cross-region log delivery between the Chinese mainland and other regions is not supported.

Prerequisites

Before you begin, make sure you have:

  • Enabled the service-linked role for WAF (skip this step if you already granted this authorization when enabling Simple Log Service for WAF). For details, see Service-linked Role.

  • Created a Project and Logstore in the Simple Log Service console to receive the logs.

The log subscription feature does not support Logstores automatically created by SLS or Logstores named waf-logstore, wafng-logstore, or wafnew-logstore.

Configure a log subscription task

  1. On the API Security page, go to Policy Configuration > Log Subscription.

  2. Select the log type, then click Configure.

  3. Select the Region, Project name, and Logstore name, then click OK. After configuration, logs are delivered to the Logstore when trigger conditions are met. To query and analyze logs in SLS, enable indexing as prompted. For details, see Create indexes.

  4. To disable a log subscription task and avoid ongoing Logstore charges, disable the task on the Log Subscription tab and delete the corresponding Logstore. For details, see How do I disable Simple Log Service or stop billing?.

Important

Log trigger conditions and fields

Asset information logs

Trigger conditions:

  • Delivered immediately when a new API asset is added.

  • If no new API assets are added, delivered every hour by default.

Fields:

Field nameDescriptionFormatExample
user_idCustomer UIDstring123456
service_hostDomain namestringapi.aliyun.com
api_formatAPI pathstring/api/v1/getuserbyid/${param}
request_methodRequest methodstringGET
api_tagBusiness purposeobject []['QueryInfo']
api_typeService objectobject []['PublicAPI']
auth_keyAuthentication fieldobject []['id_token', 'access_token']
api_statusLifecyclestringNewbornInterface
api_sensitive_levelAPI sensitivity levelstringL1
api_sensitive_reqRequest sensitive data typeobject []['1014', '1017', '1002']
api_sensitive_resResponse sensitive data typeobject []['1009', '1013', '1003', '1014', '1002']
farthest_tsFirst discovered timelong1713237135
lastest_tsLast active timelong1716452318
abnormal_numNumber of risksinteger1
event_numNumber of eventsinteger2
struct_baselineParameter structureobject['{"key":"Trace-Id","location":"request_header","format":"string","required":"true"}', ...]
matched_hostsProtected objectobject []['*.aliyun.com-waf']
hostsDomain nameobject []['api.aliyun.com']
server_portPortobject []['443']
server_locationCountry of origin serverobject []['CN']
api_idUnique API IDstringaf418cb31036015fddea71b48d06aa4b
log_typeLog typestringasset
request_headerRequest HeaderJSON{"Connection":"Keep-Alive","Host":"api.aliyun.com","eagleeye-rpcid":"0.1"}
querystringRequest URL parameterstring?token=7464f593205896e23b1286ba7532dcff
request_bodyRequest Bodystringxxx=1
response_headerResponse HeaderJSON{"Accept-Ranges":["bytes","bytes"],"Cache-Control":"private, max-age=21600, no-transform"}
response_bodyResponse Bodystringxxxx
example_timestampSample timestamplong1718546694
example_traceidSample trace IDstring784e2ca717213678365778292e58de

Risk information logs

Trigger condition: Delivered when new risk information is detected.

Fields:

Field nameDescriptionFormatExample
user_idCustomer UIDstring123456
service_hostDomain namestringapi.aliyun.com
api_formatAPI pathstring/api/v1/login
request_methodRequest methodstringPOST
api_tagBusiness purposeobject []['LoginAPI']
abnormal_tagRisk namestringRisk_DefaultPasswd
abnormal_typeRisk type (Custom/Built-in)stringdefault
abnormal_levelRisk levelstringmedium
abnormal_discover_tsRisk discovery timelong1716343432
abnormal_infoRisk informationobject{'default_passwd':'aliyun123'}
api_idUnique API IDstring2c0f97e10b586208039e60671150bd9b
abnormal_idUnique risk IDstring8cfccc0e8c3d41aa1221e94a2fdeffe3
log_typeLog typestringrisk
matched_hostsProtected objectobject []['*.aliyun.com-waf']
request_headerRequest HeaderJSON{"Connection":"Keep-Alive","Host":"api.aliyun.com","eagleeye-rpcid":"0.1"}
querystringRequest URL parameterstring?token=7464f593205896e23b1286ba7532dcff
request_bodyRequest Bodystringxxx=1
response_headerResponse HeaderJSON{"Accept-Ranges":["bytes","bytes"],"Cache-Control":"private, max-age=21600, no-transform"}
response_bodyResponse Bodystringxxxx
example_timestampSample timestamplong1718546694
example_traceidSample trace IDstring784e2ca717213678365778****58de

Attack event information logs

Trigger conditions:

  • Delivered immediately when a new attack event is detected.

  • If the attack continues, logs are delivered at 10-minute intervals.

Fields:

Field nameDescriptionFormatExample
user_idCustomer UIDstring123456
service_hostDomain namestringapi.aliyun.com
matched_hostProtected objectstringapi.aliyun.com-waf
hostDomain namestringapi.aliyun.com
api_formatAPI pathstring/api/admin/login
request_methodRequest methodstringPOST
api_tagBusiness purposeobject []['AdminService', 'LoginService']
event_tagEvent namestringEvent_LoginCollision
event_originEvent type (Custom/Built-in)stringdefault
event_levelEvent levelstringhigh
start_tsAttack start timelong1713886210
end_tsAttack end timelong1713887817
attack_cntTotal attacksinteger147
attack_ip_infoAttacker IP informationobject [][{'ip':'103.44.XX.XXX', 'country_id':'HK', 'region_id':'-', 'cnt':'147'}]
api_idUnique API IDstring4dfc73b37d2d645fe2ca7f45c08f7398
event_idEvent IDstringf09f6802e9b57a58ebb9f1bea212027e
log_typeLog typestringevent
request_dataRequest data sampleJSON{'1002':['John Doe','Jane Smith','Chen Liu'],'1004':['13200000001','15200000002']}
response_dataResponse data sampleJSON{'postarg.userId':['lisi111','zhangsan123'],'postarg.corpId':['wx1111111'],'postarg.externalUserid':['wm7_KpDgOm6Bm-BGA']}

Log field value reference

Use this reference when analyzing logs or correlating field values with the WAF console display.

Lifecycle (api_status)

Use api_status to filter for inactive APIs in SLS alert rules.

Field valueDescription
NewbornInterfaceNew
OfflineInterfaceInactive
normalNormal

Service object (api_type)

Field valueDescription
PublicAPIPublic service
ThirdpartAPIThird-party cooperation
InternalAPIInternal office

Business purpose (api_tag)

Use api_tag to filter for specific API categories in SLS queries and alert rules.

Field valueDescription
LoginByUserPasswdLog on with username and password
LoginByPhoneCodeLog on with phone verification code
LoginByMailCodeLog on with email verification code
WeChatLoginLog on with WeChat
AliPayLoginLog on with Alipay
OAuthLoginOAuth authentication
OIDCLoginOIDC authentication
SAMLLoginSAML authentication
SSOLoginSSO authentication
LoginAPILogon service
LogoutAPILog off
RegisterByUserPasswdRegister with username and password
RegisterByPhoneCodeRegister with phone verification code
RegisterByMailCodeRegister with email verification code
WeChatRegisterRegister with WeChat
AliPayRegisterRegister with Alipay
RegisterAPIRegistration service
SendSMSSend text message
SendMailSend email
ResetPasswdReset password
CheckVerifyCodeVerify verification code
CheckStatusCheck status
QueryOrderQuery order
ExportOrderExport order
UpdateOrderUpdate order
PayOrderPay order
QueryLogLog query
UploadLogLog upload
DownloadLogLog export
LogServiceLog service
GraphQLGraphQL
SqlServiceSQL service
FileUploadFile upload
FileDownloadFile download
FileServiceFile service
AdminServiceBackend management
DashBoardDashboard
MonitorServiceMonitoring service
SendInfoSend information
CheckInfoCheck data
QueryInfoQuery data
UploadInfoUpload data
DownloadInfoDownload data
AddInfoAdd data
EditInfoEdit data
UpdateInfoUpdate data
ShareInfoShare data
DeleteInfoDelete data
SyncInfoSynchronize data
SubmitInfoSubmit data
CopyInfoCopy data
AuditInfoAudit data
SaveInfoSave data
CancelOpCancel
StartOpStart
BatchOpBatch processing
PauseOpPause
BindOpBind
DebugOpDebug
SetOpSettings
ShutDownShutdown

Request/response sensitive data type (api_sensitive_req, api_sensitive_res)

Use these codes to identify the types of sensitive data detected in request and response payloads.

Field valueDescription
1000ID card (the Chinese mainland)
1001Debit card
1002Name (Simplified Chinese)
1003Address (the Chinese mainland)
1004Mobile number (the Chinese mainland)
1005Mailbox
1006Passport number (the Chinese mainland)
1007Exit-Entry Permit for Hong Kong and Macao
1008License plate number (the Chinese mainland)
1009Phone number (the Chinese mainland)
1010Officer ID card
1011Gender
1012Ethnicity
1013Province (the Chinese mainland)
1014City (the Chinese mainland)
1015ID card (Hong Kong (China))
1016Name (Traditional Chinese)
1017Name (English)
1018ID card (Malaysia)
1019ID card (Singapore)
1020Credit or Debit Card
1022SWIFT code
1023SSN
1024Phone number (United States)
1025Religious belief
2000IP address
2001MAC address
2002Java Database Connectivity (JDBC) connection string
2003PEM certificate
2004Private key
2005AccessKey ID
2006AccessKeySecret
2007IPv6 address
2009Date
2010IMEI
2011Mobile Equipment Identifier (MEID)
2013Linux passwd file
2014Linux shadow file
2015URL
4000Business license number
4001Tax registration number
4002Organization code
4003Unified Social Credit Code
4004Vehicle Identification Number (VIN)

Risk type (risk)

Use abnormal_tag to filter for specific risk types in SLS alert rules.

Field valueDescription
RiskType_SpecificationSecurity specification
Risk_UnsafeHttpMethodUnsafe HTTP method
Risk_WeakSignAlgorithmWeak JWT signature algorithm
Risk_UrlParamParameter is a URL
RiskType_AccountAccount security
Risk_PasswdUnencryptPassword transmitted in plaintext
Risk_WeakPasswdWeak password allowed
Risk_InternalWeakPasswdWeak password in internal application
Risk_DefaultPasswdDefault password exists
Risk_PasswdResponseReturns plaintext password
Risk_PasswdCookiePassword stored in cookie
Risk_LoginRestrictLogon API lacks restrictions
Risk_LoginPromptUnreasonable logon failure prompt
Risk_PasswdUrlUsername and password transmitted in URL
RiskType_ControlAccess control
Risk_InternalAPIInternal application accessible from the Internet
Risk_SourceRestrictAPI does not restrict access source
Risk_ClientRestrictAPI does not restrict access tool
Risk_SpeedRestrictAPI does not restrict access rate
RiskType_PermissionPermission management
Risk_WeakTokenWeak authentication credential
Risk_UnauthSensitiveSensitive API not authenticated
Risk_UnauthInternalAPIInternal API allows unauthenticated access
Risk_TokenUrlCredential information transmitted in URL
Risk_AkLeakAccessKey information leak
RiskType_SensitiveData protection
Risk_SensitiveTypeExcessiveReturns excessive types of sensitive data
Risk_SensitiveNumExcessiveReturns excessive amount of sensitive data
Risk_InvalidDesensitizeSensitive data not effectively masked
Risk_ServerInfoLeakServer sensitive information leak
Risk_InternalIPLeakInternal network IP address leak
Risk_SensitiveURLSensitive data transmitted in URL
RiskType_DesignAPI design
Risk_ParamTraverseRequest parameter can be traversed
Risk_PageSizeReturned data volume can be modified
Risk_SqlAPIDatabase query
Risk_RceAPICommand execution API
Risk_SmsContentArbitrary text message content sending
Risk_MailContentArbitrary email content sending
Risk_SmsVerifyCodeLeakText message verification code leak
Risk_MailVerifyCodeLeakEmail verification code leak
Risk_FileDownloadSpecified file download
Risk_ExceptionLeakApplication exception information leak
Risk_ExceptionSqlDatabase exception information leak

Event type (event)

Use event_tag to identify the type of attack in event logs and build SLS alert rules for specific attack patterns.

Field valueDescription
Event_AbnormalFrequencyAbnormally high-frequency access
Event_ExceptionIPInvokeAbnormal IP accessing internal API
Event_ExceptionRegionInvokeAbnormal region accessing internal API
Event_ExceptionClientInvokeAccess using abnormal tool
Event_ExceptionTimeInvokeAccess during abnormal time period
Event_AbnormalParamValueAccess with abnormal parameter value
Event_InternalLoginWeakPasswdInternal application logon with weak password
Event_LoginAccountBruteForceBrute-force username
Event_LoginPasswdBruteForceBrute-force logon password
Event_LoginCollisionDictionary attack
Event_MobileVerifyBruteForceBrute-force text message verification code
Event_MailVerifyBruteForceBrute-force email verification code
Event_AbnormalRegisterBatch registration
Event_SMSInterfaceAbuseMalicious consumption of text message resources
Event_EmailInterfaceAbuseMalicious consumption of email resources
Event_AbnormalExportBatch download
Event_DataTraverseTraversing and scraping API data
Event_WebAttackAPIMalicious attack on API
Event_ObtainSensitiveUnauthorizedUnauthorized access to sensitive data
Event_ObtainSensitiveExcessiveObtaining large amounts of sensitive data
Event_CrossborderIPSensitiveExcessiveOverseas IP obtaining large amounts of sensitive data
Event_ExceptionResponseAPI returns abnormal error message
Event_ExceptionSqlAPI returns database error message
Event_SystemInfoResponseAPI returns system sensitive information
Event_AbnormalStatusAbnormal API response status

9. Effective object configuration

Effective object configuration controls which detection policies apply to which protected objects.

Subscription WAF

API Security provides three switches at the protected object or protected object group level:

  • Basic Detection: Enabled by default. Controls whether all built-in and custom detection policies are active.

  • Compliance Check: Disabled by default. Can be enabled only after Basic Detection is on. Controls whether the Compliance Check feature is active.

  • Tracing and Auditing: Disabled by default. Can be enabled only after Basic Detection is on. Controls whether the Tracing and Auditing feature is active.

Pay-as-you-go WAF

API Security provides one switch at the protected object or protected object group level:

  • Basic Detection: Controls whether all built-in and custom detection policies are active. To disable API Security entirely, turn off Basic Detection for all protected objects and protected object groups.