✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Zatrzymaj klikanie, uniemożliwiając wczytywanie witryny WordPress w ramce

21

Clickjacking to potencjalne zagrożenie bezpieczeństwa spowodowane przez kogoś, kto ładuje Twoją witrynę w ramce w innej witrynie i sprawia, że ​​wygląda ona tak, jakby witryna była wiarygodna.

Na przykład, jeśli Twoja witryna wymaga zalogowania się użytkownika, złośliwa witryna może rejestrować nazwę użytkownika i hasła użytkowników, którzy logują się za pośrednictwem swojej witryny z ramkami za pomocą ataku typu clickjacking.

Na szczęście zapobieganie clickjackingowi w WordPressie jest dość proste. Możesz po prostu dodać ten mały fragment kodu do swojego functions.phppliku, aby ustawić X-FRAME-OPTIONSnagłówek naSAMEORIGIN.


function wc_prevent_clickjacking() {
    header( 'X-FRAME-OPTIONS: SAMEORIGIN' );
}
add_action( 'send_headers', 'wc_prevent_clickjacking', 10 );

Spowoduje to wysłanie nagłówka wraz z WordPress, który informuje przeglądarki, aby zapobiegały wyświetlaniu stron w ramkach, które nie są hostowane w tej samej domenie, co Twoja witryna.

Clickjacking i starsze przeglądarki

Starsze przeglądarki (przeglądarki starsze niż Internet Explorer 8 (IE8)) nie rozumieją X-FRAME-OPTIONSnagłówka, więc musimy wrócić do JavaScript. W tym celu możesz użyć następującego kodu:


try { top.document.domain } catch (e) {
    var f = function() {
        document.body.innerHTML = '';
    };
    setInterval( f, 1 );
    if (document.body) {
        document.body.onload = f;
    };
}

Wewnątrz motywu utwórz folder o nazwie JS, a następnie wytnij i wklej ten fragment kodu do pliku o nazwie clickjack-protection.js.

Oczywiście chcemy umieścić powyższy skrypt w kolejce tylko w celu załadowania dla przeglądarek starszych niż IE8, więc możemy użyć do tego starej dobrej instrukcji warunkowej, umieszczając w functions.phppliku następujący kod:


 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 );

Źródło nagrywania: wholesomecode.ltd

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów