{"id":228071,"date":"2022-10-12T09:41:00","date_gmt":"2022-10-12T06:41:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228071"},"modified":"2022-11-09T00:33:40","modified_gmt":"2022-11-08T21:33:40","slug":"zatrzymaj-klikanie-uniemozliwiajac-wczytywanie-witryny-wordpress-w-ramce","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/zatrzymaj-klikanie-uniemozliwiajac-wczytywanie-witryny-wordpress-w-ramce\/","title":{"rendered":"Zatrzymaj klikanie, uniemo\u017cliwiaj\u0105c wczytywanie witryny WordPress w ramce"},"content":{"rendered":"\n<p><a href=\"https:\/\/hashnode.com\/@wholesomecode\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><\/p>\n<p>Clickjacking to potencjalne zagro\u017cenie bezpiecze\u0144stwa spowodowane przez kogo\u015b, kto \u0142aduje Twoj\u0105 witryn\u0119 w ramce w innej witrynie i sprawia, \u017ce \u200b\u200bwygl\u0105da ona tak, jakby witryna by\u0142a wiarygodna.<\/p>\n<p>Na przyk\u0142ad, je\u015bli Twoja witryna wymaga zalogowania si\u0119 u\u017cytkownika, z\u0142o\u015bliwa witryna mo\u017ce rejestrowa\u0107 nazw\u0119 u\u017cytkownika i has\u0142a u\u017cytkownik\u00f3w, kt\u00f3rzy loguj\u0105 si\u0119 za po\u015brednictwem swojej witryny z ramkami za pomoc\u0105 ataku typu clickjacking.<\/p>\n<p>Na szcz\u0119\u015bcie zapobieganie clickjackingowi w WordPressie jest do\u015b\u0107 proste. Mo\u017cesz po prostu doda\u0107 ten ma\u0142y fragment kodu do swojego <code>functions.php<\/code>pliku, aby ustawi\u0107 <code>X-FRAME-OPTIONS<\/code>nag\u0142\u00f3wek na<code>SAMEORIGIN.<\/code><\/p>\n<pre><code>\nfunction wc_prevent_clickjacking() {\n    header( 'X-FRAME-OPTIONS: SAMEORIGIN' );\n}\nadd_action( 'send_headers', 'wc_prevent_clickjacking', 10 );\n<\/code><\/pre>\n<p>Spowoduje to wys\u0142anie nag\u0142\u00f3wka wraz z WordPress, kt\u00f3ry informuje przegl\u0105darki, aby zapobiega\u0142y wy\u015bwietlaniu stron w ramkach, kt\u00f3re nie s\u0105 hostowane w tej samej domenie, co Twoja witryna.<\/p>\n<h2>Clickjacking i starsze przegl\u0105darki<\/h2>\n<p>Starsze przegl\u0105darki (przegl\u0105darki starsze ni\u017c Internet Explorer 8 (IE8)) nie rozumiej\u0105 <code>X-FRAME-OPTIONS<\/code>nag\u0142\u00f3wka, wi\u0119c musimy wr\u00f3ci\u0107 do JavaScript. W tym celu mo\u017cesz u\u017cy\u0107 nast\u0119puj\u0105cego kodu:<\/p>\n<pre><code>\ntry { top.document.domain } catch (e) {\n    var f = function() {\n        document.body.innerHTML = '';\n    };\n    setInterval( f, 1 );\n    if (document.body) {\n        document.body.onload = f;\n    };\n}\n<\/code><\/pre>\n<p>Wewn\u0105trz motywu utw\u00f3rz folder o nazwie <code>JS<\/code>, a nast\u0119pnie wytnij i wklej ten fragment kodu do pliku o nazwie <code>clickjack-protection.js<\/code>.<\/p>\n<p>Oczywi\u015bcie chcemy umie\u015bci\u0107 powy\u017cszy skrypt w kolejce tylko w celu za\u0142adowania dla przegl\u0105darek starszych ni\u017c IE8, wi\u0119c mo\u017cemy u\u017cy\u0107 do tego starej dobrej instrukcji warunkowej, umieszczaj\u0105c w <code>functions.php<\/code>pliku nast\u0119puj\u0105cy kod:<\/p>\n<pre><code>\n function wc_prevent_clickjacking_older_browsers() {\n    $script_url = get_stylesheet_directory_uri(). 'js\/clickjack-protection.js';\n    wp_enqueue_script(\n        'clickjack-protection-js',\n        $script_url\n    );\n\n    wp_script_add_data( 'clickjack-protection-js', 'conditional', 'lt IE 8' );\n}\nadd_action( 'wp_enqueue_scripts', 'wc_prevent_clickjacking_older_browsers', 10 );\n<\/code><\/pre>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wholesomecode.ltd\" class=\"external external_icon\">wholesomecode.ltd<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Clickjacking to potencjalne zagro\u017cenie bezpiecze\u0144stwa spowodowane przez kogo\u015b, kto \u0142aduje Twoj\u0105 witryn\u0119 w ramce na innej witrynie i sprawia wra\u017cenie, \u017ce witryna jest wiarygodna, jednak&#8230;<\/p>\n","protected":false},"author":1,"featured_media":224174,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[],"tags":[1169],"class_list":["post-228071","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/228071","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=228071"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/228071\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/224174"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=228071"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=228071"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=228071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}