Este documento mostra exemplos de como implementar os recursos do reCAPTCHA para WAF do Google Cloud Armor.
É possível usar um ou mais recursos do reCAPTCHA para WAF em um único aplicativo.
Se você quiser usar mais de um recurso, crie uma chave reCAPTCHA para cada um deles e use-os no seu aplicativo. Por exemplo, se você quer usar tokens de ação e a página de teste do reCAPTCHA, é necessário criar uma chave de token de ação e uma chave de página de teste e usá-las no seu aplicativo.Exemplo 1: como usar tokens de sessão reCAPTCHA e a página de teste do reCAPTCHA
É possível adicionar um token de sessão reCAPTCHA às páginas que um usuário pode acessar. Assim, o cookie é atualizado periodicamente. Isso se aplica a, por exemplo, uma página de login. Configure uma regra da política de segurança do Google Cloud Armor para redirecionar a solicitação a uma página de teste do reCAPTCHA quando a pontuação for baixa.
A ilustração a seguir mostra um fluxo de trabalho que usa recursos da página de teste e um token de sessão reCAPTCHA
Exemplo 2: como usar tokens de ação reCAPTCHA e a página de teste do reCAPTCHA
É possível adicionar um token de ação reCAPTCHA para proteger uma ação do usuário, como a finalização da compra. Configure uma regra da política de segurança do Google Cloud Armor para redirecionar a solicitação a uma página de teste do reCAPTCHA em qualquer uma das seguintes condições:
- A pontuação é baixa.
- O atributo
action_name
do token de ação não corresponde à ação protegida do usuário.
A ilustração a seguir mostra um fluxo de trabalho que usa recursos da página de teste e um token de ação reCAPTCHA:
O exemplo de script a seguir mostra como usar um token de ação reCAPTCHA e redirecionar para uma página de teste do reCAPTCHA com o token de ação anexado como cabeçalho:
<script src="https://www.google.com/recaptcha/enterprise.js?render=ACTION_TOKEN_SITE_KEY"></script>
<script>
function onSuccess(token) {
const xhr = new XMLHttpRequest();
xhr.open('GET','http://www.example.com/checkout', false);
xhr.setRequestHeader("X-Recaptcha-Token", token);
xhr.onreadystatechange = function() {
// Make sure that the request is finished and response is ready with 200
if (this.readyState == 4 && this.status == 200) {
// Display the response, it could be a reCAPTCHA challenge
// page based on your Google Cloud Armor security rule settings.
document.open();
document.write(xhr.responseText);
document.close();
}
};
xhr.send(null);
}
grecaptcha.enterprise.ready(function () {
document.getElementById("execute-button").onclick = () => {
grecaptcha.enterprise.execute('ACTION_TOKEN_SITE_KEY', {
}).then(onSuccess, onError);
};
});
</script>
A seguir
- Saiba como implementar recursos do reCAPTCHA WAF com o Google Cloud Armor.
- Saiba mais sobre os recursos de integração com provedores de serviços de WAF.