Pare o Clickjacking impedindo que seu site WordPress seja carregado em um quadro
O sequestro de cliques é um risco de segurança potencial causado por alguém que carrega seu site dentro de um frame em outro site e faz parecer que o site é legítimo.
Por exemplo, se seu site exige que um usuário faça login, o site malicioso pode estar registrando o nome de usuário e as senhas de usuários que fazem login por meio de seu site emoldurado por meio de um ataque de clickjacking.
Felizmente, evitar clickjacking no WordPress é bastante simples. Você pode simplesmente adicionar este pequeno trecho de código em seu functions.php
arquivo para definir o X-FRAME-OPTIONS
cabeçalho paraSAMEORIGIN.
function wc_prevent_clickjacking() {
header( 'X-FRAME-OPTIONS: SAMEORIGIN' );
}
add_action( 'send_headers', 'wc_prevent_clickjacking', 10 );
Isso enviará um cabeçalho junto com o WordPress que informa aos navegadores para impedir que as páginas apareçam em quadros que não estejam hospedados no mesmo domínio do seu site.
Navegadores mais antigos (navegadores mais antigos que o Internet Explorer 8 (IE8)) não entendem o X-FRAME-OPTIONS
cabeçalho, então temos que recorrer ao JavaScript. Para isso você pode usar o seguinte código:
try { top.document.domain } catch (e) {
var f = function() {
document.body.innerHTML = '';
};
setInterval( f, 1 );
if (document.body) {
document.body.onload = f;
};
}
Dentro do seu tema, crie uma pasta chamada JS
e recorte e cole esse trecho de código em um arquivo chamado clickjack-protection.js
.
É claro que queremos apenas enfileirar o script acima para carregar navegadores anteriores ao IE8, para que possamos usar uma boa e velha instrução condicional para fazer isso, colocando o seguinte código em seu functions.php
arquivo:
function wc_prevent_clickjacking_older_browsers() {
$script_url = get_stylesheet_directory_uri(). 'js/clickjack-protection.js';
wp_enqueue_script(
'clickjack-protection-js',
$script_url
);
wp_script_add_data( 'clickjack-protection-js', 'conditional', 'lt IE 8' );
}
add_action( 'wp_enqueue_scripts', 'wc_prevent_clickjacking_older_browsers', 10 );