Cloud Application and Network Security Web Protection - Introduction 2024-11-28-14-02-43
Cloud Application and Network Security Web Protection - Introduction 2024-11-28-14-02-43
Contents
Website Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Websites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Website Management API Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Website General Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Website Domain Management API Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Website Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
General Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Login Protect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Security Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
WAF Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
DDoS Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Adaptive L7 DDoS Threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Notification Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Give access to external users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Error Responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
At the core of Imperva’s Web Protection are our security reverse proxy and Web Application Firewall (WAF) in the
cloud, which are deployed across our globally distributed CDN network. Organizations using Web Protection route
their website traffic through the Imperva network by performing a simple DNS change. This enables Imperva to inspect
each and every request sent to the website and filter out any kind of malicious activity.
Benefits
• PCI certified Web Application Firewall
• Service is backed by Imperva’s security team for updating and tuning security rules
• Easy and quick implementation - usually no rule tuning is required
• Bot mitigation using Imperva’s advanced client classification technology
• Backdoor Protection to identify and quarantine backdoors planted on your website
• Custom security logic using security rules
• Granular access controls based on IPs, URLs, location and client type
• Seamless implementation of two-factor authentication
• Real-time dashboard for traffic monitoring and event analysis
• REST API and SIEM integration of access and security logs
Organizations using Web Protection update their domain DNS to point to a unique hostname (CNAME) provided by
Imperva (e.g., mysite.incapdns.net). This hostname is dynamically resolved for every website visitor, making sure each
visitor is served by the closest Imperva data center.
Imperva's reverse proxies include over 50 patterns used to recognize personal data such as credit card numbers, email
addresses, or phone numbers.
Imperva reverse proxies analyze incoming requests and search for data that matches these patterns. When a match is
found, we immediately perform irreversible masking in memory (RAM), in real-time. Logs generated in the proxy use the
masked data.
These patterns are fully configurable and can be enhanced per customer, per website. Our customers can expand the list
of patterns as needed to cover additional information that they consider to be sensitive.
The current definition and the ability to add new patterns is configured by Support.
DDoS Mitigation
Websites using Imperva DDoS Protection are protected from any type of DDoS attack, including both network (Layer 3
and 4) and application (Layer 7) attacks. Imperva’s secure HTTP proxy terminates TCP connections, acting as a buffer
between the Internet and the origin server and filtering out any kind of DDoS attack, such as SYN floods and UDP floods.
Only legitimate HTTP/HTTPs traffic is forwarded to the origin server.
Layer 7 DDoS attacks are mitigated by a dedicated engine that can distinguish between legitimate visitors and DDoS bots.
This engine leverages Imperva’s client classification technology, as well as unique capabilities to challenge suspicious
visitors and verify their authenticity, without impacting the website's normal user experience.
Deployment
Websites that support SSL are required to provision an SSL certificate on Imperva. Imperva maintains two types of
certificates. The first is an Imperva-generated certificate that can be automatically created and integrated using the new
site wizard. Organizations using Web Protection can also upload their own certificate, which will be presented to SNI-
supporting clients instead of the Imperva-generated certificate. See Web Protection - SSL/TLS for more information.
Web Protection can be deployed as an always-on solution (the most common scenario) or as an on-demand solution for
DDoS mitigation.
Traffic Flow
Understand the behind-the-scenes flow of an end user visit to a website protected by Imperva’s Web Protection.
How To
Read More
To open the Websites page, log in to your account in the Imperva Cloud Security Console .
To add a new site, click the Add website button and follow the onscreen instructions. For more details, see Onboarding a
Site – Web Protection and CDN.
The following details are displayed for each website. The statistics are generated daily and cover the last 7 days, except
for bandwidth, which covers the last 30 days.
Field Description
Name of the website. Click to drill down into the specific
website's dashboard to view incoming traffic, security
Name
events, and server activity in real-time. Configure site
settings to meet your needs.
The total amount of traffic (requests per second) served
Bandwidth from your website, both from the Imperva cache and from
your origin server.
Number of visits to your website by legitimate human
Human Visits
visitors, typically via a web browser.
Bot Visits Total visits by all good and bad bots.
WAF Sessions Threats to your website detected by Imperva.
Creation Date The date the site was created.
Field Description
Partially configured:
Not configured:
Disabled:
Note:
Field Description
Read More
The terms in the absence of an applicable signed agreement between you and Imperva
https://www.imperva.com/legal/license-agreement/
Access
1. APIKey KeyParamName:x-API-Id KeyInQuery:false KeyInHeader:true
2. APIKey KeyParamName:x-API-Key KeyInQuery:false KeyInHeader:true
Methods
Models
Table of Contents
AccountTLSConfiguration
• get /v3/accounts/settings/default-tls-configuration
• put /v3/accounts/settings/default-tls-configuration
SimplifiedSiteOnboarding
• post /v3/sites/onboard
SiteManagement
• delete /v3/sites/{siteId}
• get /v3/sites/{siteId}
• get /v3/sites
• post /v3/sites
WebsiteTLSConfiguration
• get /v3/sites/{siteId}/settings/TLSConfiguration
• patch /v3/sites/{siteId}/settings/TLSConfiguration
AccountTLSConfiguration
Up
get /v3/accounts/settings/default-tls-configuration
Query parameters
caid (optional)
Query Parameter — The Imperva ID of the account or subaccount. By default, the account ID is the ID associated with the
API credentials used for authentication. To run an API on a sub account, specify the sub account ID. format: int64
Return type
AccountInboundTLSConfigurationRequest
Example data
Content-Type: application/json
{
"data" : [ {
"tlsConfiguration" : [ {
"tlsVersion" : "TLS_1_0",
"ciphersSupport" : [ "ciphersSupport", "ciphersSupport" ]
}, {
"tlsVersion" : "TLS_1_0",
"ciphersSupport" : [ "ciphersSupport", "ciphersSupport" ]
} ],
"configurationProfile" : "CUSTOM"
} ]
}
Produces
This API call produces the following media types according to the Accept request header; the media type will be conveyed
by the Content-Type response header.
• application/json
Responses
200
400
401
Unauthorized ErrorResponse
404
500
put /v3/accounts/settings/default-tls-configuration
Consumes
This API call consumes the following media types via the Content-Type request header:
• application/json
Request body
body AccountInboundTLSConfigurationRequest (required)
Body Parameter —
example:
{
"description" : "Sets custom ciphers profile with support for
just TLS v1.3 and specific
list of ciphers.",
"value" : {
"data" : [ {
"configurationProfile" : "CUSTOM",
"tlsConfiguration" : [ {
"tlsVersion" : "TLS_1_3",
"ciphersSupport" : [ "TLS_AES_128_GCM_SHA256", "TLS_CHACHA20_P
OLY1305_SHA256" ]
} ]
} ]
}
}
Query parameters
caid (optional)
Query Parameter — The Imperva ID of the account or subaccount. By default, the account ID is the ID associated with the
API credentials used for authentication. To run an API on a sub account, specify the sub account ID. format: int64
Produces
This API call produces the following media types according to the Accept request header; the media type will be conveyed
by the Content-Type response header.
• application/json
Responses
200
Successful operation
400
401
Unauthorized ErrorResponse
404
500
SimplifiedSiteOnboarding
Up
post /v3/sites/onboard
Consumes
This API call consumes the following media types via the Content-Type request header:
• application/json
Request body
body SiteOnboardingRequest (required)
Body Parameter —
Query parameters
caid (optional)
Query Parameter — The Imperva ID of the account or subaccount. By default, the account ID is the ID associated with the
API credentials used for authentication. To run an API on a sub account, specify the sub account ID. format: int64
Return type
CollectionSiteOnboardResponse
Example data
Content-Type: application/json
{
"data" : [ {
"instructions" : {
"SSL" : [ {
"description" : "Add the following record to your DNS provider",
"recordType" : "CNAME",
"value" : "qweqwe.ng.impervadns.net",
"host" : "_delegate_validation.example.com"
} ],
"Network" : [ {
"description" : "Add the following record to your DNS provider",
"recordType" : "A",
"value" : "1.2.3.4",
"host" : "example.com"
}, {
"description" : "Add the following record to your DNS provider",
"recordType" : "A",
"value" : "5.6.7.8",
"host" : "example.com"
}, {
"description" : "Add the following record to your DNS provider",
"recordType" : "CNAME",
"value" : "asdasd.ng.impervadns.net",
"host" : "www.example.com"
} ]
},
"site" : {
"accountId" : 10,
"creationTime" : 1673186130,
"isDefaultSite" : false,
"name" : "www.example.com",
"cname" : "sdh5s.example.com",
"id" : 123456,
"type" : "CLOUD_WAF"
},
"certificateSettings" : {
"validationMethod" : "CNAME"
},
"servers" : {
"ips" : [ "1.2.3.4", "3.2.2.2" ]
},
"domains" : [ {
"name" : "www.example.com",
"protectionStatus" : "BYPASSED",
"id" : 123456
}, {
"name" : "www.example.com",
"protectionStatus" : "BYPASSED",
"id" : 123456
} ]
}, {
"instructions" : {
"SSL" : [ {
"description" : "Add the following record to your DNS provider",
"recordType" : "CNAME",
"value" : "qweqwe.ng.impervadns.net",
"host" : "_delegate_validation.example.com"
} ],
"Network" : [ {
"description" : "Add the following record to your DNS provider",
"recordType" : "A",
"value" : "1.2.3.4",
"host" : "example.com"
}, {
"description" : "Add the following record to your DNS provider",
"recordType" : "A",
"value" : "5.6.7.8",
"host" : "example.com"
}, {
"description" : "Add the following record to your DNS provider",
"recordType" : "CNAME",
"value" : "asdasd.ng.impervadns.net",
"host" : "www.example.com"
} ]
},
"site" : {
"accountId" : 10,
"creationTime" : 1673186130,
"isDefaultSite" : false,
"name" : "www.example.com",
"cname" : "sdh5s.example.com",
"id" : 123456,
"type" : "CLOUD_WAF"
},
"certificateSettings" : {
"validationMethod" : "CNAME"
},
"servers" : {
"ips" : [ "1.2.3.4", "3.2.2.2" ]
},
"domains" : [ {
"name" : "www.example.com",
"protectionStatus" : "BYPASSED",
"id" : 123456
}, {
"name" : "www.example.com",
"protectionStatus" : "BYPASSED",
"id" : 123456
} ]
} ]
}
Produces
This API call produces the following media types according to the Accept request header; the media type will be conveyed
by the Content-Type response header.
• application/json
Responses
200
400
401
Unauthorized ErrorResponse
404
500
SiteManagement
Up
delete /v3/sites/{siteId}
Path parameters
siteId (required)
Path Parameter — Numeric identifier of the site. format: int64
Query parameters
caid (optional)
Query Parameter — The Imperva ID of the account or subaccount. By default, the account ID is the ID associated with the
API credentials used for authentication. To run an API on a sub account, specify the sub account ID. format: int64
Return type
CollectionSite
Example data
Content-Type: application/json
{
"data" : [ {
"accountId" : 10,
"creationTime" : 1673186130,
"isDefaultSite" : false,
"name" : "www.example.com",
"cname" : "sdh5s.example.com",
"id" : 123456,
"type" : "CLOUD_WAF"
}, {
"accountId" : 10,
"creationTime" : 1673186130,
"isDefaultSite" : false,
"name" : "www.example.com",
"cname" : "sdh5s.example.com",
"id" : 123456,
"type" : "CLOUD_WAF"
} ]
}
Produces
This API call produces the following media types according to the Accept request header; the media type will be conveyed
by the Content-Type response header.
• application/json
Responses
200
400
401
Unauthorized ErrorResponse
404
500
get /v3/sites/{siteId}
Path parameters
siteId (required)
Path Parameter — Numeric identifier of the site. format: int64
Query parameters
caid (optional)
Query Parameter — The Imperva ID of the account or subaccount. By default, the account ID is the ID associated with the
API credentials used for authentication. To run an API on a sub account, specify the sub account ID. format: int64
Return type
CollectionSite
Example data
Content-Type: application/json
{
"data" : [ {
"accountId" : 10,
"creationTime" : 1673186130,
"isDefaultSite" : false,
"name" : "www.example.com",
"cname" : "sdh5s.example.com",
"id" : 123456,
"type" : "CLOUD_WAF"
}, {
"accountId" : 10,
"creationTime" : 1673186130,
"isDefaultSite" : false,
"name" : "www.example.com",
"cname" : "sdh5s.example.com",
"id" : 123456,
"type" : "CLOUD_WAF"
} ]
}
Produces
This API call produces the following media types according to the Accept request header; the media type will be conveyed
by the Content-Type response header.
• application/json
Responses
200
400
401
Unauthorized ErrorResponse
404
500
get /v3/sites
Query parameters
siteIds (optional)
Query Parameter — A list of website ids. If this parameter is provided, only websites matching one of these IDs will be
returned. format: int64
names (optional)
Query Parameter — A list of website names. If this parameter is provided, only websites matching one of these names will
be returned.
siteTypes (optional)
Query Parameter — A list of website types. Indicates if the website is onboarded to Imperva Cloud WAF or configured for
Imperva WAF Anywhere. If this parameter is provided, only websites with type matching one of these types will be
returned.
page (optional)
Query Parameter — The page to return starting from 0. default: 0 format: int32
size (optional)
Query Parameter — Page size used to determine the first object to be returned and the number of objects to be returned.
default: 10 format: int32
caid (optional)
Query Parameter — The Imperva ID of the account or subaccount. By default, the account ID is the ID associated with the
API credentials used for authentication. To run an API on a sub account, specify the sub account ID. format: int64
Return type
PaginatedCollectionSite
Example data
Content-Type: application/json
{
"data" : [ {
"accountId" : 10,
"creationTime" : 1673186130,
"isDefaultSite" : false,
"name" : "www.example.com",
"cname" : "sdh5s.example.com",
"id" : 123456,
"type" : "CLOUD_WAF"
}, {
"accountId" : 10,
"creationTime" : 1673186130,
"isDefaultSite" : false,
"name" : "www.example.com",
"cname" : "sdh5s.example.com",
"id" : 123456,
"type" : "CLOUD_WAF"
} ],
"meta" : {
"size" : 1,
"totalPages" : 0,
"page" : 5,
"totalElements" : 6
},
"links" : {
"key" : "links"
}
}
Produces
This API call produces the following media types according to the Accept request header; the media type will be conveyed
by the Content-Type response header.
• application/json
Responses
200
400
401
Unauthorized ErrorResponse
404
500
post /v3/sites
Consumes
This API call consumes the following media types via the Content-Type request header:
• application/json
Request body
body Site (required)
Body Parameter —
Query parameters
caid (optional)
Query Parameter — The Imperva ID of the account or subaccount. By default, the account ID is the ID associated with the
API credentials used for authentication. To run an API on a sub account, specify the sub account ID. format: int64
Return type
CollectionSite
Example data
Content-Type: application/json
{
"data" : [ {
"accountId" : 10,
"creationTime" : 1673186130,
"isDefaultSite" : false,
"name" : "www.example.com",
"cname" : "sdh5s.example.com",
"id" : 123456,
"type" : "CLOUD_WAF"
}, {
"accountId" : 10,
"creationTime" : 1673186130,
"isDefaultSite" : false,
"name" : "www.example.com",
"cname" : "sdh5s.example.com",
"id" : 123456,
"type" : "CLOUD_WAF"
} ]
}
Produces
This API call produces the following media types according to the Accept request header; the media type will be conveyed
by the Content-Type response header.
• application/json
Responses
200
400
401
Unauthorized ErrorResponse
404
500
WebsiteTLSConfiguration
Up
get /v3/sites/{siteId}/settings/TLSConfiguration
Path parameters
siteId (required)
Path Parameter — Numeric identifier of the website. format: int64
Query parameters
caid (optional)
Query Parameter — The Imperva ID of the account or subaccount. By default, the account ID is the ID associated with the
API credentials used for authentication. To run an API on a sub account, specify the sub account ID. format: int64
Produces
This API call produces the following media types according to the Accept request header; the media type will be conveyed
by the Content-Type response header.
• application/json
Responses
200
Successful operation
400
401
Unauthorized ErrorResponse
404
500
patch /v3/sites/{siteId}/settings/TLSConfiguration
Path parameters
siteId (required)
Path Parameter — Numeric identifier of the website. format: int64
Consumes
This API call consumes the following media types via the Content-Type request header:
• application/json
Request body
body SiteTLSConfigurationRequest (required)
Body Parameter —
example:
{
"description" : "Enables and configure HSTS and sets custom ci
phers profile with support
for just TLS v1.3 and specific list of ciphers.",
"value" : {
"data" : [ {
"hstsConfiguration" : {
"preLoaded" : false,
"maxAge" : 7543,
"subDomainsIncluded" : false,
"isEnabled" : true
},
"inboundTlsSettings" : {
"configurationProfile" : "CUSTOM",
"tlsConfiguration" : [ {
"tlsVersion" : "TLS_1_3",
"ciphersSupport" : [ "TLS_AES_128_GCM_SHA256", "TLS_CHACHA20_P
OLY1305_SHA256" ]
} ]
}
} ]
}
}
Query parameters
caid (optional)
Query Parameter — The Imperva ID of the account or subaccount. By default, the account ID is the ID associated with the
API credentials used for authentication. To run an API on a sub account, specify the sub account ID. format: int64
Return type
CollectionSiteTLSConfiguration
Example data
Content-Type: application/json
{
"data" : [ {
"hstsConfiguration" : {
"maxAge" : 7543,
"isEnabled" : false,
"subDomainsIncluded" : false,
"preLoaded" : false
},
"inboundTlsSettings" : {
"tlsConfiguration" : [ {
"tlsVersion" : "TLS_1_0",
"ciphersSupport" : [ "ciphersSupport", "ciphersSupport" ]
}, {
"tlsVersion" : "TLS_1_0",
"ciphersSupport" : [ "ciphersSupport", "ciphersSupport" ]
} ],
"configurationProfile" : "CUSTOM"
}
}, {
"hstsConfiguration" : {
"maxAge" : 7543,
"isEnabled" : false,
"subDomainsIncluded" : false,
"preLoaded" : false
},
"inboundTlsSettings" : {
"tlsConfiguration" : [ {
"tlsVersion" : "TLS_1_0",
"ciphersSupport" : [ "ciphersSupport", "ciphersSupport" ]
}, {
"tlsVersion" : "TLS_1_0",
"ciphersSupport" : [ "ciphersSupport", "ciphersSupport" ]
} ],
"configurationProfile" : "CUSTOM"
}
} ]
}
Produces
This API call produces the following media types according to the Accept request header; the media type will be conveyed
by the Content-Type response header.
• application/json
Responses
200
400
401
Unauthorized ErrorResponse
404
500
Models
Methods
Table of Contents
1. APIError
2. AccountInboundTLSConfigurationRequest
3. CertificateSettings
4. CollectionSite
5. CollectionSiteOnboardResponse
6. CollectionSiteTLSConfiguration
7. DnsOnboardingInstructionDto
8. Domain
9. ErrorResponse
10. InboundTlsSettings
11. PaginatedCollectionSite
12. PaginationMetadata
13. Servers
14. Site
15. SiteHstsConfiguration
16. SiteOnboardResponse
17. SiteOnboardingRequest
18. SiteTLSConfiguration
19. SiteTLSConfigurationRequest
20. TLSVersion
APIError
Up
status (optional)
Integer format: int32
id (optional)
String
code (optional)
String
source (optional)
map[String, Object]
title (optional)
String
detail (optional)
String
AccountInboundTLSConfigurationRequest
Up
data (optional)
array[InboundTlsSettings]
CertificateSettings
Up
Certificate Settings entity
validationMethod (optional)
String The method used by Imperva to validate domain ownership.
example: CNAME
CollectionSite
Up
data (optional)
array[Site]
CollectionSiteOnboardResponse
Up
data (optional)
array[SiteOnboardResponse]
CollectionSiteTLSConfiguration
Up
data (optional)
array[SiteTLSConfiguration]
DnsOnboardingInstructionDto
Up
site onboarding DNS instruction
description (optional)
String instruction's description
recordType (optional)
String DNS record type
example: CNAME
value (optional)
String DNS record value
example: abc.impervadns.net
host (optional)
String DNS record host
example: www.example.com
Domain
Up
Domain entity
id (optional)
Long The ID of the domain format: int64
example: 123456
name (optional)
String The domain name
example: www.example.com
protectionStatus (optional)
String The domain ownership verification status. Possible values: BYPASSED, MISCONFIGURED, VERIFIED, PROTECTED
example: BYPASSED
ErrorResponse
Up
errors (optional)
array[APIError]
InboundTlsSettings
Up
configurationProfile (optional)
String TLS configuration profile is an enumeration of predefined configuration profiles.It can also be set to CUSTOM, for
PaginatedCollectionSite
Up
data
array[Site] API paginated response data
meta (optional)
PaginationMetadata
links (optional)
map[String, String] API pagination links
PaginationMetadata
Up
API pagination metadata
totalPages (optional)
Integer format: int32
totalElements (optional)
Long format: int64
size (optional)
Integer format: int32
page (optional)
Integer format: int32
Servers
Up
Server entity
ips (optional)
array[String] Data Center's origin server IPs/CNAMEs
example: ["1.2.3.4","3.2.2.2"]
Site
Up
Site entity
id (optional)
Long The ID of the site. format: int64
example: 123456
name
String Friendly name of the site.
example: www.example.com
type
String The website type. Indicates which kind of website is created, e.g. CLOUD_WAF for a website onboarded to Imperva
Cloud WAF.
Enum:
CLOUD_WAF
LOCAL
example: CLOUD_WAF
accountId (optional)
Long The account ID of the site format: int64
example: 10
creationTime (optional)
Long The creation date of the site format: int64
example: 1673186130
cname (optional)
String The CNAME provided by Imperva that is used for pointing your website traffic to the Imperva network.
example: sdh5s.example.com
isDefaultSite (optional)
Boolean Default anywhere site
example: false
SiteHstsConfiguration
Up
HTTP Strict transport security (HSTS) ensures that any attempt by visitors to use the unsecure version (http://) of a page
will be forwarded automatically to the secure version (https://).
preLoaded (optional)
Boolean The most secure way to enforce HSTS. Ensures the first request goes out in a secure tunnel, since the browser
already has that URL in the pre-load list. The domain needs to be listed at https://hstspreload.appspot.com/.
maxAge (optional)
Long (TTL) The amount of time in seconds to apply HSTS in the browser before attempting to load the page using http://.
format: int64
example: 7543
subDomainsIncluded (optional)
Boolean Enforce HSTS on sub-domains. For example, a page listed on xxx.ddd.com uses resources from images.ddd.com.
If HSTS for sub-domains is enabled, the images are also covered. Make sure that the site and all sub-domains support
HTTPS so that HSTS does not break an internal resource when rendering the page.
isEnabled (optional)
Boolean Enable/disable HSTS support for this website
SiteOnboardResponse
Up
Site onboarding response entity
site (optional)
Site
domains (optional)
array[Domain]
servers (optional)
Servers
certificateSettings (optional)
CertificateSettings
instructions (optional)
map[String, array[DnsOnboardingInstructionDto]] Site onboarding instructions list
example: {"SSL":[{"description":"Add the following record to your DNS
provider","recordType":"CNAME","value":"qweqwe.ng.impervadns.net","host":"_delegate_validation.example.com"}],"Network":[{"des
the following record to your DNS provider","recordType":"A","value":"1.2.3.4","host":"example.com"},{"description":"Add
the following record to your DNS provider","recordType":"A","value":"5.6.7.8","host":"example.com"},{"description":"Add
the following record to your DNS
provider","recordType":"CNAME","value":"asdasd.ng.impervadns.net","host":"www.example.com"}]}
SiteOnboardingRequest
Up
Site onboarding request entity
domain
String The domain of the site
example: my.domain.com
servers (optional)
array[String] List of your origin server IP addresses or CNAMEs.
example: ["1.2.3.4","3.2.2.2"]
name (optional)
String The name of the site. If not specified, the domain name is used.
example: my site
type (optional)
String The website type. Indicates which kind of website is created, e.g. CLOUD_WAF for a website onboarded to Imperva
Cloud WAF.
Enum:
CLOUD_WAF
LOCAL
example: CLOUD_WAF
SiteTLSConfiguration
Up
hstsConfiguration (optional)
SiteHstsConfiguration
inboundTlsSettings (optional)
InboundTlsSettings
SiteTLSConfigurationRequest
Up
data (optional)
array[SiteTLSConfiguration]
TLSVersion
Up
List of supported TLS versions and ciphers related to the specific version. This list holds the CUSTOM configuration that is
going to be used in the communication between the client and Imperva. If the list is empty a predefined configuration
profile should be used.
tlsVersion (optional)
String TLS version name. For example: TLS_1_2
Enum:
TLS_1_0
TLS_1_1
TLS_1_2
TLS_1_3
ciphersSupport (optional)
array[String] List of RFC cipher names supported for the specified TLS version. This configuration is used when the
CUSTOM configuration profile is selected. Please refer to https://docs.imperva.com/bundle/cloud-application-security/
page/cipher-suites.htm for the list of ciphers.
Note: Website TLS configuration has moved. For details, see Customize Website TLS Configuration.
Data Storage
By default, Imperva assigns a region to a site based on geolocation of the origin server registered for the site. If the
account administrator changed the default region for new sites created in your Imperva account, the data storage region
for your site may be different. For details, see Account Settings.
Option Description
Salt value: Enter a hashing salt to use for hashing. The salt
Mask data by hashing
increases the security of the hashing process.
Note: Event data is stored for 90 days. To view events from the previous region during that time period, click the pop-up
banner on the Events page.
If you change the data storage region twice within a 90-day period, you will no longer be able to view event data from the
first region.
Example: You changed from region A to region B and then to region C within a 90-day period. When you change to region
C, you will not be able to access event data from region A.
Imperva Headers
Enabling Imperva request headers adds new headers to each request sent to your origin server.
Option Description
Option Description
DNS settings
This section displays reference information showing your original DNS settings, and the DNS records that were provided
by Imperva for onboarding your site. The instructions for changing your DNS records were provided by Imperva.
Option Description
The DNS settings detected by Imperva during the initial
Original DNS Settings
onboarding process of the website.
Option Description
For example, you can define a TXT record here for SPF
authentication in order to prevent email spoofing.
Note: Apex domains are not supported as alternative domains. If you need to onboarded an apex domain, it must be
added as a separate site per request to Imperva Support.
Imperva detects and adds all domains that are using the Imperva-provided CNAME assigned to the onboarded (primary)
website.
Once ownership of a domain is verified, the domain is protected by Imperva and shares the website settings and
configuration of the onboarded website. Legitimate traffic for all verified domains is allowed.
• To add multiple domains, you can upload a file in csv format, with one domain per line. Click the arrow and
click Upload bulk CSV.
Column Description
Name The name of the domain. For example, www.example.com.
Column Description
Possible values:
Wildcard domains
Once a wildcard domain is in Protected status, all domains that match the wildcard domain are added to the list of
allowed domains when traffic to them is detected. You cannot manually add or remove a subdomain of a wildcard
domain.
You can choose to "promote" the matching domains to become full domains. On the wildcard domain row, click
and select Detach Wildcard. Each of the matching domains is then listed as a full domain and the wildcard is removed
from the table.
To manage alternative domains using the Imperva API, see Website Domain Management API Definition.
Additional Settings
Miscellaneous
Option Description
Enable content based error responses This option enables you to return an error response in
JSON or XML format, based on the Accept or Content-
Type HTTP request headers. For details, see Error
Responses.
Read More
All domains that are using the same CNAME share the website configuration settings and policies of the onboarded
website.
Access
1. APIKey KeyParamName:x-API-Id KeyInQuery:false KeyInHeader:true
2. APIKey KeyParamName:x-API-Key KeyInQuery:false KeyInHeader:true
Methods
Models
Table of Contents
Domains
• post /v2/sites/{siteId}/domains
• delete /v2/sites/{siteId}/domains/{domainId}
• get /v2/sites/{siteId}/domains/{domainId}
• get /v2/sites/{siteId}/domains
Domains
Up
post /v2/sites/{siteId}/domains
Path parameters
siteId (required)
Path Parameter — The Imperva ID of the onboarded website. format: int64
Consumes
This API call consumes the following media types via the Content-Type request header:
• application/json
Request body
body AddSiteDomainDetails (required)
Body Parameter —
Return type
SiteDomainDetails
Example data
Content-Type: application/json
{
"validationMethod" : "CNAME",
"managed" : false,
"domain" : "a.example.com",
"autoDiscovered" : true,
"subDomains" : [ {
"creationTime" : 1655140751000,
"subDomain" : "sub.domain.example.com",
"lastDiscoveredTime" : 1655140751000,
"id" : 320
}, {
"creationTime" : 1655140751000,
"subDomain" : "sub.domain.example.com",
"lastDiscoveredTime" : 1655140751000,
"id" : 320
} ],
"siteId" : 66575115,
"mainDomain" : false,
"validationCode" : "xjkschvver.impervadnsstage.net",
"id" : 440,
"cnameRedirectionRecord" : "xjkschvver.impervadnsstage.net",
"creationDate" : 1655140751000,
"status" : "BYPASSED"
Produces
This API call produces the following media types according to the Accept request header; the media type will be conveyed
by the Content-Type response header.
• application/json
Responses
200
400
500
delete /v2/sites/{siteId}/domains/{domainId}
Path parameters
siteId (required)
Path Parameter — The Imperva ID of the onboarded website. format: int64
domainId (required)
Path Parameter — The Imperva ID of the domain. You can retrieve the domain ID using the GET /domains call. format:
int64
Produces
This API call produces the following media types according to the Accept request header; the media type will be conveyed
by the Content-Type response header.
• */*
Responses
200
successful operation
400
500
get /v2/sites/{siteId}/domains/{domainId}
Path parameters
siteId (required)
Path Parameter — The Imperva ID of the onboarded website. format: int64
domainId (required)
Path Parameter — The Imperva ID of the domain. You can retrieve the domain ID using the GET /domains call. format:
int64
Return type
SiteDomainDetails
Example data
Content-Type: application/json
{
"validationMethod" : "CNAME",
"managed" : false,
"domain" : "a.example.com",
"autoDiscovered" : true,
"subDomains" : [ {
"creationTime" : 1655140751000,
"subDomain" : "sub.domain.example.com",
"lastDiscoveredTime" : 1655140751000,
"id" : 320
}, {
"creationTime" : 1655140751000,
"subDomain" : "sub.domain.example.com",
"lastDiscoveredTime" : 1655140751000,
"id" : 320
} ],
"siteId" : 66575115,
"mainDomain" : false,
"validationCode" : "xjkschvver.impervadnsstage.net",
"id" : 440,
"cnameRedirectionRecord" : "xjkschvver.impervadnsstage.net",
"creationDate" : 1655140751000,
"status" : "BYPASSED"
}
Produces
This API call produces the following media types according to the Accept request header; the media type will be conveyed
by the Content-Type response header.
• application/json
Responses
200
400
500
get /v2/sites/{siteId}/domains
Path parameters
siteId (required)
Path Parameter — The Imperva ID of the onboarded website. format: int64
Query parameters
pageNumber (optional)
Query Parameter — The page to return starting from 0.<br/><br/>In order to view the full results, run the API call with
page_num set to 0,<br/>then again with page_num set to 1, and so forth.<br/><br/>Default: 0 format: int32
pageSize (optional)
Query Parameter — The number of objects to return in the response.<br/><br/>Default: 50<br/><br/>Maximum: 100
format: int32
Return type
GetSiteDomainsDetails
Example data
Content-Type: application/json
{
"data" : [ {
"validationMethod" : "CNAME",
"managed" : false,
"domain" : "a.example.com",
"autoDiscovered" : true,
"subDomains" : [ {
"creationTime" : 1655140751000,
"subDomain" : "sub.domain.example.com",
"lastDiscoveredTime" : 1655140751000,
"id" : 320
}, {
"creationTime" : 1655140751000,
"subDomain" : "sub.domain.example.com",
"lastDiscoveredTime" : 1655140751000,
"id" : 320
} ],
"siteId" : 66575115,
"mainDomain" : false,
"validationCode" : "xjkschvver.impervadnsstage.net",
"id" : 440,
"cnameRedirectionRecord" : "xjkschvver.impervadnsstage.net",
"creationDate" : 1655140751000,
"status" : "BYPASSED"
}, {
"validationMethod" : "CNAME",
"managed" : false,
"domain" : "a.example.com",
"autoDiscovered" : true,
"subDomains" : [ {
"creationTime" : 1655140751000,
"subDomain" : "sub.domain.example.com",
"lastDiscoveredTime" : 1655140751000,
"id" : 320
}, {
"creationTime" : 1655140751000,
"subDomain" : "sub.domain.example.com",
"lastDiscoveredTime" : 1655140751000,
"id" : 320
} ],
"siteId" : 66575115,
"mainDomain" : false,
"validationCode" : "xjkschvver.impervadnsstage.net",
"id" : 440,
"cnameRedirectionRecord" : "xjkschvver.impervadnsstage.net",
"creationDate" : 1655140751000,
"status" : "BYPASSED"
} ],
"meta" : {
"totalPages" : 5
}
}
Produces
This API call produces the following media types according to the Accept request header; the media type will be conveyed
by the Content-Type response header.
• application/json
Responses
200
400
500
Models
Methods
Table of Contents
1. APIError
2. APIErrors
3. AddSiteDomainDetails
4. GetEntitiesDetailsMeta
5. GetSiteDomainsDetails
6. SiteDomainDetails
7. WildCardSubDomainDetails
APIError
Up
status (optional)
Integer format: int32
id (optional)
String
code (optional)
String
source (optional)
map[String, Object]
title (optional)
String
detail (optional)
String
APIErrors
Up
errors (optional)
array[APIError]
AddSiteDomainDetails
Up
domain
String The name of the domain to add
example: full.alternative.domain.incaptest.co
strictMode (optional)
Boolean Internal use for Terraform. <br>In strict mode, add/delete of hostname is allowed only if it does not affect other
hosts in the site. For example, adding a wildcard hostname is forbidden in strict mode if a subdomain of the wildcard
already exists as a siteDomain, while in loose mode, the subdomain is converted to a WildCardSubDomain
example: true
GetEntitiesDetailsMeta
Up
totalPages (optional)
Integer The total number of pages format: int32
example: 5
GetSiteDomainsDetails
Up
data (optional)
array[SiteDomainDetails]
meta (optional)
GetEntitiesDetailsMeta
SiteDomainDetails
Up
id (optional)
Long The ID of the alternative domain format: int64
example: 440
siteId (optional)
Long The Imperva ID of the onboarded website. format: int64
example: 66575115
domain (optional)
String The name of the domain to add
example: a.example.com
autoDiscovered (optional)
Boolean CNAME reuse domain that was discovered automatically by Imperva proxy
example: true
mainDomain (optional)
Boolean Indicates if the domain is primary domain or alternative domain
example: false
managed (optional)
Boolean Indicates that the primary domain does not have any alternative domains
example: false
subDomains (optional)
array[WildCardSubDomainDetails]
validationMethod (optional)
String The method used to validate ownership of the domain. Possible values: CNAME, TXT, A
example: CNAME
validationCode (optional)
String The code that should be used to validate ownership of the domain
example: xjkschvver.impervadnsstage.net
cnameRedirectionRecord (optional)
String The CNAME value that should be used for CNAME reuse for the alternative domains.
example: xjkschvver.impervadnsstage.net
status (optional)
String The domain ownership verification status. Possible values: BYPASSED, MISCONFIGURED, VERIFIED, PROTECTED
example: BYPASSED
creationDate (optional)
Long The date of the domain creation format: int64
example: 1655140751000
WildCardSubDomainDetails
Up
id (optional)
Long The Imperva Id of the wild card subdomain details format: int64
example: 320
subDomain (optional)
String The name of the subdomain
example: sub.domain.example.com
lastDiscoveredTime (optional)
Long For auto-discovered domains, indicates the last time the domain was discovered. format: int64
example: 1655140751000
creationTime (optional)
Long The creation time of the wildcard subdomain details format: int64
example: 1655140751000
Note: If you are subscribed via an Imperva partner, your default settings are defined by the partner and may vary from
the descriptions in this documentation.
Read More
Note:
• All Website General settings except SSL support have been moved to a new page. For details, see Website
General Settings and Customize Website TLS Configuration.
• Custom certificates are now managed on the SSL Certificates page. For details, see Manage SSL Certificates.
The option to use the existing certificate currently on your website has been deprecated.
SSL support
Configure SSL support for your site, and view your site's SSL configuration status.
Note: When you onboard a website, you are given an Imperva IP address to configure in your DNS records so that traffic
to your website will flow through Imperva.
• If you configure SSL support for your site after onboarding and request an Imperva-generated certificate.
Option Description
Check my site for SSL. Checks for SSL on your site. If SSL
is detected, the configure action is displayed and you can
start the configuration process.
Option Description
Option Description
Add full domain SAN Adds the full domain SAN to the Imperva SSL certificate.
Option Description
Note: To configure SSL coverage with an Imperva-generated cerficate via the Imperva API, use the Modify site
configuration endpoint with the domain_validation parameter: POST: https://my.imperva.com/api/prov/v1/sites/
configure
Read More
Note: You can add no more than 10 Login Protect users per website and no more than 500 per account.
Overview
On top of existing usernames and passwords, Login Protect adds two factor authentication based on a one-time passcode
sent to the authenticating user, without making any changes to your applications or installing any software. The following
methods are available for users to obtain one-time passcodes:
• Email
• Text message (SMS)
• Google Authenticator mobile application
Note: To limit suspected bot requests, a CAPTCHA challenge may appear before a passcode is sent. Imperva does not
display one when it recognizes a user that has either passed a CAPTCHA challenge or entered a correct two factor
passcode during the session.
To add a persistent cookie on a computer that provides 14 weeks of automatic recognition, click “Trust this computer”
Protected Pages
Protected Pages refer to sensitive pages on your website, such as an admin login page, for which you want to add an
extra layer of security.
Click on the Add Page button and select either a specific URL to protect or a URL pattern (for example, any page whose
URL ends with /admin). Any number of URLs or URL patterns may be entered, as long as they are all within the same top-
level domain (for example, all start with www.mydomain.com).
Excluded Pages
The option to exclude resources defined in the Protected Pages section from being protected by two-factor
authentication.
Example:
In this case, all resources under wp-admin will require "two-factor authentication" except from admin-ajax.php.
This section lets you define the authentication mechanisms by which users can receive a one-time passcode.
Authorized Users
This section lets you define which users are allowed to access Protected Pages after authentication. Login Protect enables
two methods for selecting the group of Login Protect users that will be authorized to access Protected Pages:
• Authorize all Login Protect users in this account: this option will automatically authorize all existing and
future Login Protect users, even if they are added as users on other sites.
• Select authorized users from list: this option can be used for selecting a subset of Login Protect users from the
Login Protect users list
When adding users you will be prompted to review the invitation email that will be sent out and customize it if required.
You may enter multiple email addresses separated by commas or semicolons.
Any user that has been invited to use Login Protect will receive an email (the same one you have reviewed and
customized as the administrator).
After users have clicked the activation link at the bottom of the invitation email they will be asked to configure the
methods for receiving one-time passcodes. The available methods will be determined by the Login Protect settings for
that site under Methods and Notifications.
Logging In
A user accessing a URL that is protected with Login Protect will be prompted to enter a one-time passcode using the
following screen:
Based on the Login Protect configuration for this website, users can obtain the passcode by either opening their Google
Authenticator mobile application, entering their email address to receive the passcode by email, or by clicking the Text
Me button to receive the passcode in a text message.
After entering a valid passcode, users will be able to proceed to the website. Users remain authenticated for the
remainder of their session, or for 14 days if they select the Trust this computer for 14 days option.
Users who did not complete their Login Protect user activation may do so by clicking the Didn't Activate Login Protect?
link.
Note: The Block Specific Sources and Allowlist Specific Sources settings are now configured using policies. For details,
see Create and Manage Policies.
Imperva’s unique classification technology can tell whether your website visitors are humans or bots. Our client database
holds an extensive list of bot classifications and can identify the specific type of bot visiting your website.
Each bot is marked either as a Good Bot or a Bad Bot. Bad Bots are those bots that pose a threat to your website security.
For example, a vulnerability scanner or a DDoS attack bot. Googlebot (and all other search engine bots) is marked as a
good bot and not blocked by the Bad Bots rule.
For the list of the clients and client type categories that Imperva addresses, see Client Classification.
For more details on Imperva's mitigation capabilities for automated threats, see Bot Mitigation.
Option Description
Click the Good Bots link to edit the Good Bots List. The
Good Bots List displays a list of the bots that do not pose a
threat to your website. By default, each of these bots is
marked with a checkmark, which means that they are not
blocked by default.
Option Description
2. Start typing the name of a bot you want to block and click Add.
2. From the Add exception rule on drop-down menu select Client app ID.
3. Start typing the name of a bot you want to allow and click Add.
CAPTCHA providers
As a security service, Imperva is committed to providing the highest grade of security. Part of the service includes
selecting the best CAPTCHA service to use for our customers. Imperva uses these captcha providers:
• hCaptcha
• reCAPTCHA
• GeeTest
As the service provider, Imperva selects the captcha provider depending on how you configure your sites and the client
IP geolocation.
Define exceptions
To add an item to the Exceptions list for any of the security rules:
1. Click Add exception, or Exceptions if there are already existing exceptions defined.
2. In the Add exception rule on field, select the type of item to be added to the whitelist, such as User agent,
URL, Client app ID, IP, or Country.
◦ For IP exceptions, single IPs, IP ranges, and subnets are supported, such as 2.2.2.2, 3.3.3.3-3.3.3.5, or
10.10.10.10/24.
3. In the field to the right, fill in the value to exclude from the rule.
4. Click Add.
5. You can repeat the steps above to add additional rules.
6. Click Confirm.
Note: An exception rule will match only if all match criteria are satisfied. If you want to add an exception for multiple and
non-related scenarios, you can add multiple exception rules.
Read More
Define how Imperva's Web Application Firewall (WAF) responds to malicious visitors or requests.
Note: Most WAF settings are now managed by the WAF Rules policy feature. For more details, see Create and Manage
Policies.
Backdoor protection
This option detects and quarantines backdoors to your website.
Backdoors are widely used by hackers trying to find a way into your site for malicious purposes, such as sending spam
and participating in DDoS attacks on other websites.
Usually the first thing a hacker does after gaining access to a compromised website is to plant a backdoor that can later
be used to obtain full access to the compromised server and to its root capabilities.
Option Description
Option Description
Quarantined Backdoors
This list contains all backdoor URLs that are detected while the Auto-Quarantine option is selected.
Hover over a URL for more details. Click Show Backdoor to view the blocked page.
To remove a backdoor URL from the quarantine list, click the X on the item in the list.
You can also add or remove backdoor URLs from the quarantine list when an event is logged on the Security Events
page. For details, see View Security Events.
Note: An allowlist rule will match only if all match criteria are satisfied. If you want to allowlist multiple and non-related
scenarios, you can add multiple allowlist rules
1. Click the Add allowlist option under the relevant type of WAF protection. For example under the DDoS option.
The following displays:
2. In the Add allowlist rule on field, select the type of item to be added to the allowlist, such as URL, Client app
ID, IP, Country, User Agent or HTTP parameter.
3. In the field to the right, fill in the value to be allowlisted.
4. Click the Add button.
5. Multiple rules can be added to this window by following the steps above.
6. Click the Confirm button.
Tip: You can also add an item to the WAF allowlist directly from the Security Events page if you have identified a false
positive event.
Read More
Select the desired WAF DDoS behavior from the drop-down menu.
Note: API-only and SPA sites require special configuration. To enable API DDoS settings for one of these site types, contact
Imperva Support.
Option Description
On DDoS mitigation rules are enabled for all traffic.
Option Description
Option Description
Note that rates above 5000 RPS are considered high. If you
are setting a high threshold to handle a temporary
increase in traffic, remember to adjust it when traffic
returns to normal.
Option Description
An allowlist rule will match only if all match criteria are satisfied. If you want to allowlist multiple and non-related
scenarios, you can add multiple allowlist rules.
2. In the Add exception rule on field, select the type of item to be added to the allowlist, such as URL, Client app
ID, IP, or Country.
3. In the field to the right, fill in the value to be allowlisted.
4. Click Add.
5. Add additional rules as needed by following the steps above.
6. Click Confirm.
Tip: Alternatively, you can add an item to the WAF allowlist directly from the Events page if you have identified a false
positive event.
Slow HTTP attacks are a type of denial-of-service (DoS) attack in which requests are sent in small chunks, one at a time.
This is problematic because if the HTTP request is incomplete, or if the transfer rate is very slow, server resources are kept
busy waiting for the rest of the information, and legitimate connections cannot be made.
To prevent slow HTTP attacks, we configure a request body timeout which determines the minimal number of bytes we
accept during a specified time period.
Imperva provides DoS mitigation for HTTP methods according to the default rate of a minimum of 5000 bytes received
every 30 seconds.
You can choose to override the default rates for any or all of the following methods: GET, POST, PUT, RPC_IN_DATA,
RPC_OUT_DATA.
3. Select the methods for which you want to set different values, and configure the values.
The custom rate will be used only for the methods that you select. Other methods continue to use the default
rate.
Read More
This topic describes the method Imperva uses to set a dynamic threshold for DDoS mitigation.
Imperva's Web Protection - DDoS Settings determine how and when mitigation is activated.
When DDoS mitigation for layer 7 (application layer) traffic is enabled, Imperva needs to be able to determine when a site
is under DDoS attack. This is done by setting a threshold that indicates when traffic exceeds the normal, expected rate of
requests. Once this threshold is passed, a set of mitigation rules are activated to determine if the website is under actual
attack.
Correctly setting the threshold value is therefore a crucial part of L7 DDoS protection.
The problem
One mitigation option is the default Automatic L7 DDoS setting, which activates mitigation rules when the request rate
exceeds a static threshold setting.
By default, the threshold is set to 1000 requests per second (rps), which may not be appropriate for all websites.
Changing this setting requires a certain level of expertise and is accompanied by some risk.
• Setting the threshold too high may leave you exposed to attack.
• Setting the threshold too low can trigger false positives, blocking clean traffic or inundating your system with
alerts, and may disrupt the end-user experience by triggering unnecessary challenges, such as CAPTCHAs.
In addition, a static threshold may not be suitable as traffic patterns change over time.
The solution
The Adaptive L7 DDoS setting dynamically sets the threshold for DDoS mitigation for your website. This automated
process regularly updates the threshold, reducing the risk of false positives or false negatives resulting from an outdated
configuration.
The algorithm used to set the threshold works by testing multiple thresholds and estimating their performance. All
possible thresholds are simulated to determine which works best.
The optimal threshold value is determined by estimating the number of false positive, true positives, and true negatives
that result from each threshold.
Note: This solution is best suited to sites that are not experiencing traffic changes on an hourly basis, such as during
campaign events.
Imperva will notify you by email. A single mail is sent for all alerts occurring within a 5-minute interval. The mail will
include a sample of up to three of the generated alerts, and details of the total number of alerts and visits.
You can view the full list of threat alerts in the Website Security Dashboard > WAF violations section, and then drill
down to more detailed information displayed in the Security Events page.
You can define what actions to take when a threat is identified using the WAF Rules policy. For details, see Create and
Manage Policies.
In accounts where the new WAF Rules policy is available, the report is slightly different. The information provided reflects
the status of the website’s security rule configuration at the time the report is generated.
The user can then see the site listed in the Cloud Security Console Websites page.
The user you add must be an existing user in another account which is on the same or higher level subscription plan.
Note: The Permissions page applies only to users from other accounts. To manage permissions for users in the current
account and its sub accounts, see Manage Account Users.
Add user
Click Add User and fill in the details.
Error Responses
This topic explains how error responses are returned to clients.
Overview
Error responses are returned to website visitors in each of the following scenarios when a request is blocked:
For more details, see Cloud WAF Error Pages and Codes.
Response format
By default, error responses are returned in HTML format.
To return error responses in JSON or XML format, based on the Accept or Content-Type HTTP request headers:
4. Under Additional Settings, enable the Enable content based error responses option.
Accept header: contains json, does not contain html Default JSON error response
Response examples
JSON error response
{
“incidentId” : “3411854340000000422-34793753560490",
“hostName” : “test.example.com”,
“errorCode” : “20",
“description” : “The proxy failed to connect to the web server, due to TCP connection time
“timeUtc” : “2019-03-12 12:37:19 UTC”,
“clientIp” : “1.2.3.4",
“proxyId” : “1111",
“proxyIp” : “5.6.7.8"
}
<proxyIp>5.6.7.8</proxyIp>
</incident>
Read More