Pysäytä napsautus estämällä WordPress-sivustoasi latautumasta kehykseen
Napsautuskaappaus on mahdollinen turvallisuusriski, joka aiheutuu siitä, että joku lataa verkkosivustosi kehyksen sisään toisella verkkosivustolla ja saa sen näyttämään siltä, että verkkosivusto on laillinen, mutta he kaappaavat sivuston kanssa tekemiäsi vuorovaikutuksia, kuten lomakkeiden lähetyksiä.
Jos verkkosivustosi edellyttää esimerkiksi käyttäjän kirjautumista, haitallinen verkkosivusto saattaa kirjata niiden käyttäjien käyttäjätunnukset ja salasanat, jotka kirjautuvat sisään kehystetyn sivustonsa kautta napsautushyökkäyksen kautta.
Onneksi clickjackingin estäminen WordPressissä on melko yksinkertaista. Voit vain lisätä tämän pienen koodinpätkän functions.php
tiedostoosi määrittääksesi X-FRAME-OPTIONS
otsikonSAMEORIGIN.
function wc_prevent_clickjacking() {
header( 'X-FRAME-OPTIONS: SAMEORIGIN' );
}
add_action( 'send_headers', 'wc_prevent_clickjacking', 10 );
Tämä lähettää WordPressin mukana otsikon, joka kehottaa selaimia estämään sivujen näkymisen kehyksissä, jotka eivät ole samassa verkkotunnuksessa kuin verkkosivustosi.
Clickkacking ja vanhemmat selaimet
Vanhemmat selaimet (vanhemmat selaimet kuin Internet Explorer 8 (IE8)) eivät ymmärrä X-FRAME-OPTIONS
otsikkoa, joten meidän on palattava JavaScriptiin. Tätä varten voit käyttää seuraavaa koodia:
try { top.document.domain } catch (e) {
var f = function() {
document.body.innerHTML = '';
};
setInterval( f, 1 );
if (document.body) {
document.body.onload = f;
};
}
Luo teeman sisälle kansio nimeltä JS
ja leikkaa ja liitä koodinpätkä tiedostoon nimeltä clickjack-protection.js
.
Tietenkin haluamme vain asettaa yllä olevan skriptin latautumaan IE8:aa vanhemmille selaimille, joten voimme käyttää vanhaa hyvää ehdollista käskyä tähän lisäämällä seuraavan koodin functions.php
tiedostoosi:
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 );