Detenga el secuestro de clics evitando que su sitio de WordPress se cargue en un marco
El secuestro de clics es un riesgo de seguridad potencial causado por alguien que carga su sitio web dentro de un marco en otro sitio web y hace que parezca que el sitio web es legítimo; sin embargo, secuestrarán las interacciones que realice con ese sitio, como el envío de formularios.
Por ejemplo, si su sitio web requiere que un usuario inicie sesión, el sitio web malicioso podría estar registrando el nombre de usuario y las contraseñas de los usuarios que inician sesión a través de su sitio enmarcado a través de un ataque de clickjacking.
Afortunadamente, prevenir el secuestro de clics en WordPress es bastante sencillo. Simplemente puede agregar este pequeño fragmento de código en su functions.php
archivo para establecer el X-FRAME-OPTIONS
encabezado enSAMEORIGIN.
function wc_prevent_clickjacking() {
header( 'X-FRAME-OPTIONS: SAMEORIGIN' );
}
add_action( 'send_headers', 'wc_prevent_clickjacking', 10 );
Esto enviará un encabezado junto con WordPress que le indica a los navegadores que eviten que las páginas se muestren en marcos que no estén alojados en el mismo dominio que su sitio web.
Los navegadores más antiguos (navegadores anteriores a Internet Explorer 8 (IE8)) no entienden el X-FRAME-OPTIONS
encabezado, por lo que tenemos que recurrir a JavaScript. Para esto puedes usar el siguiente 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 de su tema, cree una carpeta con el nombre JS
y corte y pegue ese fragmento de código en un archivo llamado clickjack-protection.js
.
Por supuesto, solo queremos poner en cola el script anterior para que se cargue en navegadores anteriores a IE8, por lo que podemos usar una buena declaración condicional antigua para hacer esto, colocando el siguiente código en su functions.php
archivo:
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 );