Bot Mitigation
Suporte a namespace
Alguns endpoints permitem configuração com granularidade de domínio ou de namespace, são os endpoints com {dominio_ou_namespace_id}
, é possível adquirir o id do namespace na api de namespaces.
Listar Ação para Bots
Lista qual a ação que será realizada para cada tipo de Bot.
GET /v1/bot-mitigation/{dominio_ou_namespace_id}
$ curl -i https://api.gocache.com.br/v1/bot-mitigation/seudominio.com.br \
-X GET \
-H 'GoCache-Token:seu_token'
HTTP/1.1 200 OK
{
"status_code": 1,
"response": [
{
"vuln-scanner": "block"
},
{
"exploitation-tool": "block"
},
{
"web-scraper": "challenge"
},
{
"hacking-utilities": "challenge"
},
{
"host-discovery": "simulate"
},
{
"proxied-origin": "simulate"
},
{
"spam-bot": "accept"
},
{
"ddos-bot": "accept"
},
{
"obfuscated-hacking-utilities": "accept"
},
{
"worm-bot": "accept"
}
]
}
Alterar Ação para Bot
Define a ação que será realizada para cada tipo de Bot.
PUT /v1/bot-mitigation/{dominio_ou_namespace_id}
$ curl -i https://api.gocache.com.br/v1/bot-mitigation/seudominio.com.br \
-X PUT \
-H 'GoCache-Token:seu_token' \
-d 'proxied-origin=simulate' \
-d 'vuln-scanner=block'
Parâmetros
Campo | Opcional | Tipo | Descrição |
---|---|---|---|
vuln-scanner | ✓ | String | Ação que será tomada para bots classificados como Vulnerability Scanner Valores permitidos: "accept", "simulate", "challenge", "block" |
exploitation-tool | ✓ | String | Ação que será tomada para bots classificados como Exploitation Tool Valores permitidos: "accept", "simulate", "challenge", "block" |
web-scraper | ✓ | String | Ação que será tomada para bots classificados como Web Scraper Valores permitidos: "accept", "simulate", "challenge", "block" |
hacking-utilities | ✓ | String | Ação que será tomada para bots classificados como Hacking Utilities Valores permitidos: "accept", "simulate", "challenge", "block" |
host-discovery | ✓ | String | Ação que será tomada para bots classificados como Host Discovery Valores permitidos: "accept", "simulate", "challenge", "block" |
proxied-origin | ✓ | String | Ação que será tomada para bots classificados como Proxied Origin Valores permitidos: "accept", "simulate", "challenge", "block" |
spam-bot | ✓ | String | Ação que será tomada para bots classificados como Spam Bot Valores permitidos: "accept", "simulate", "challenge", "block" |
worm-bot | ✓ | String | Ação que será tomada para bots classificados como Worm Bot Valores permitidos: "accept", "simulate", "challenge", "block" |
HTTP/1.1 200 OK
{
"status_code": 1,
"response": [
{
"vuln-scanner": "block"
},
{
"exploitation-tool": "block"
},
{
"web-scraper": "challenge"
},
{
"hacking-utilities": "challenge"
},
{
"host-discovery": "simulate"
},
{
"proxied-origin": "simulate"
},
{
"spam-bot": "accept"
},
{
"ddos-bot": "accept"
},
{
"obfuscated-hacking-utilities": "accept"
},
{
"worm-bot": "accept"
}
]
}
Alterar Exceção
Alterar uma exceção de Bot Mitigation existente.
PUT /v1/rules/botmitigation/{dominio_ou_namespace_id}/{id}
$ curl -i https://api.gocache.com.br/v1/rules/botmitigation/seudominio.com.br/aabbccddeeffgghh \
-X PUT \
-H 'GoCache-Token:seu_token' \
-d 'match[request]=https://www.gocache.com.br/static/js/*' \
-d 'match[request_method]=GET' \
-d 'match[request_method]=POST' \
-d 'match[remote_address]=255.255.255.0/24' \
-d 'match[cookie]=mycookie1,mycookie2,mycookie3' \
-d 'match[cookie_content]=mycookie1=123*' \
-d 'match[header]=Accept:*' \
-d 'match[http_referer]=www.google.com.br' \
-d 'match[http_user_agent]=*Mozilla*' \
-d 'match[origin_country]=US|UK' \
-d 'match[origin_continent]=SA' \
-d 'match[origin_continent]=EU' \
-d 'match[http_version]=HTTP/1.0' \
-d 'match[http_version]=HTTP/1.1' \
-d 'match[device_type]=mobile' \
-d 'match[device_type]=bot' \
-d 'action[bot_mitigation_disabled][1]=proxied-origin' \
-d 'action[bot_mitigation_disabled][2]=hacking-utilities' \
-d 'action[bot_mitigation_status]=false'
Parâmetros
Campo | Opcional | Tipo | Descrição |
---|---|---|---|
metadata | Object | ||
status | ✓ | Boolean | Indica se a exceção está ativa ou inativa Valor padrão: true Valores permitidos: true, false |
name | ✓ | String | Nome da exceção |
notes | ✓ | String | Descrição da exceção |
match | Object | Critério da exceção | |
request | ✓ | String | A URL completa da requisição, composta do protocolo HTTP, de um host e da URI. Ex: https://www.gocache.com.br/static/js/* |
http_version | ✓ | Array | Versão do HTTP utilizada Valores permitidos: "HTTP/1.0", "HTTP/1.1", "HTTP/2.0" |
device_type | ✓ | Array | Tipo do dispositivo que está realizando a requisição Valores permitidos: "desktop", "mobile", "bot", "na" |
http_user_agent | ✓ | String | User agent. Suporta wildcard (*). Ex: *Mozilla* |
cookie | ✓ | String | Se possui um cookie, de uma lista de um ou mais cookies, presente. Pode ser mais de um, separado por vírgula. Suporta wildcard (*). Ex: wp_login,wp_test |
cookie_content | ✓ | String | Se um cookie possui um valor específico. O nome e o valor são separados igual (=). Suporta wildcard (*) no valor do cookie. Ex: wp_test=yes |
request_method | ✓ | Array | Método da requisição Valores permitidos: GET, POST, PUT, DELETE |
http_referer | ✓ | String | Referer da requisição |
remote_address | ✓ | String | IP ou range de IP da origem da requisição. Para ranges apenas as máscaras /32, /24 e /16 estão disponíveis |
header | ✓ | String | Se a requisiço possui um cabeçalho específico. O nome e o valor são separados por dois-pontos(:). Suporta wildcard (*) no valor do cabeçalho. Ex Accept:* |
origin_country | ✓ | String | País de origem Valores permitidos: "BR", "US", "CN", "RU", "..." |
origin_continent | ✓ | Array | Continente de origem Valores permitidos: "SA", "NA", "OC", "EU", "AF", "AS" |
action | Object | Ação | |
bot_mitigation_disabled | ✓ | Array | Lista contendo o nome de cada classificação desejada Valores permitidos: "worm-bot", "spam-bot", "proxied-origin", "host-discovery", "hacking-utilities", "web-scraper", "exploitation-tool", "vuln-scanner", "obfuscated-hacking-utilities", "ddos-bot |
bot_mitigation_status | ✓ | Boolean | Desabilita bot mitigation como um todo Valores permitidos: false, true |
HTTP/1.1 200 OK
{
"response": {
"msg": "Success"
}
}
Criar Exceção
Criar exceção de Bot Mitigation.
POST /v1/rules/botmitigation/{dominio_ou_namespace_id}
$ curl -i https://api.gocache.com.br/v1/rules/botmitigation/seudominio.com.br \
-X POST \
-H 'GoCache-Token:seu_token' \
-d 'match[request]=https://www.gocache.com.br/static/js/*' \
-d 'match[request_method]=GET' \
-d 'match[request_method]=POST' \
-d 'match[remote_address]=255.255.255.0/24' \
-d 'match[cookie]=mycookie1,mycookie2,mycookie3' \
-d 'match[cookie_content]=mycookie1=123*' \
-d 'match[header]=Accept:*' \
-d 'match[http_referer]=www.google.com.br' \
-d 'match[http_user_agent]=*Mozilla*' \
-d 'match[origin_country]=US|UK' \
-d 'match[origin_continent]=SA' \
-d 'match[origin_continent]=EU' \
-d 'match[http_version]=HTTP/1.0' \
-d 'match[http_version]=HTTP/1.1' \
-d 'match[device_type]=mobile' \
-d 'match[device_type]=bot' \
-d 'action[bot_mitigation_disabled][1]=proxied-origin' \
-d 'action[bot_mitigation_disabled][2]=hacking-utilities' \
-d 'action[bot_mitigation_status]=false'
Parâmetros
Campo | Opcional | Tipo | Descrição |
---|---|---|---|
metadata | Object | ||
status | ✓ | Boolean | Indica se a exceção está ativa ou inativa Valor padrão: true Valores permitidos: true, false |
name | ✓ | String | Nome da exceção |
notes | ✓ | String | Descrição da exceção |
match | Object | Critério da exceção | |
request | ✓ | String | A URL completa da requisição, composta do protocolo HTTP, de um host e da URI. Ex: https://www.gocache.com.br/static/js/* |
http_version | ✓ | Array | Versão do HTTP utilizada Valores permitidos: "HTTP/1.0", "HTTP/1.1", "HTTP/2.0" |
device_type | ✓ | Array | Tipo do dispositivo que está realizando a requisição Valores permitidos: "desktop", "mobile", "bot", "na" |
http_user_agent | ✓ | String | User agent. Suporta wildcard (*). Ex: *Mozilla* |
cookie | ✓ | String | Se possui um cookie, de uma lista de um ou mais cookies, presente. Pode ser mais de um, separado por vírgula. Suporta wildcard (*). Ex: wp_login,wp_test |
cookie_content | ✓ | String | Se um cookie possui um valor específico. O nome e o valor são separados igual (=). Suporta wildcard (*) no valor do cookie. Ex: wp_test=yes |
request_method | ✓ | Array | Método da requisição Valores permitidos: GET, POST, PUT, DELETE |
http_referer | ✓ | String | Referer da requisição |
remote_address | ✓ | String | IP ou range de IP da origem da requisição. Para ranges apenas as máscaras /32, /24 e /16 estão disponíveis |
header | ✓ | String | Se a requisiço possui um cabeçalho específico. O nome e o valor são separados por dois-pontos (:). Suporta wildcard (*) no valor do cabeçalho. Ex Accept:* |
origin_country | ✓ | String | País de origem Valores permitidos: "BR", "US", "CN", "RU", "..." |
origin_continent | ✓ | Array | Continente de origem Valores permitidos: "SA", "NA", "OC", "EU", "AF", "AS" |
action | Object | Ação | |
bot_mitigation_disabled | ✓ | Array | Lista contendo o nome de cada classificação desejada Valores permitidos: "worm-bot", "spam-bot", "proxied-origin", "host-discovery", "hacking-utilities", "web-scraper", "exploitation-tool", "vuln-scanner", "obfuscated-hacking-utilities", "ddos-bot |
bot_mitigation_status | ✓ | Boolean | Desabilita bot mitigation como um todo Valores permitidos: false, true |
HTTP/1.1 200 OK
{
"response": {
"id": "itlzfvzxiagdfsia"
}
}
Listar Exceções
Listar as exceções de Bot Mitigation de um domínio ou namespace.
GET /v1/rules/botmitigation/{dominio_ou_namespace_id}
$ curl -i https://api.gocache.com.br/v1/rules/botmitigation/seudominio.com.br \
-X GET \
-H 'GoCache-Token:seu_token'
HTTP/1.1 200 OK
{
"response": {
"rules": [
{
"action": {
"bot_mitigation_disabled": [
"vuln-scanner",
"proxied-origin"
]
},
"match": {
"request_method": [
"GET",
"POST"
],
"cookie_content": "mycookie1=123*",
"http_referer": "www.google.com.br",
"remote_address": "255.255.255.0/24",
"http_version": [
"HTTP/1.0",
"HTTP/1.1"
],
"cookie": "mycookie1,mycookie2,mycookie3",
"origin_continent": [
"SA",
"EU"
],
"device_type": [
"mobile",
"bot"
],
"header": "Accept:*",
"http_user_agent": "*Mozilla*",
"origin_country": "US|UK"
},
"metadata": {
"created_on": "1681321138",
"status": "true"
},
"id": "itlzfvzxiagdfsia"
}
]
}
}
Remover Exceção
Remover uma exceção de Bot Mitigation.
DELETE /v1/rules/botmitigation/{dominio_ou_namespace_id}/{id}
$ curl -i https://api.gocache.com.br/v1/rules/botmitigation/seudominio.com.br/aabbccddeeffgghh \
-X DELETE \
-H 'GoCache-Token:seu_token'
HTTP/1.1 200 OK
{
"response": {
"msg": "Success"
}
}