Pular para conteúdo

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"
    }
}