{"id":228507,"date":"2022-10-12T09:27:00","date_gmt":"2022-10-12T06:27:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228507"},"modified":"2022-11-09T02:46:09","modified_gmt":"2022-11-08T23:46:09","slug":"pare-o-clickjacking-impedindo-que-seu-site-wordpress-seja-carregado-em-um-quadro","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/pare-o-clickjacking-impedindo-que-seu-site-wordpress-seja-carregado-em-um-quadro\/","title":{"rendered":"Pare o Clickjacking impedindo que seu site WordPress seja carregado em um quadro"},"content":{"rendered":"<p><a href=\"https:\/\/hashnode.com\/@wholesomecode\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><\/p>\n<p>O sequestro de cliques \u00e9 um risco de seguran\u00e7a potencial causado por algu\u00e9m que carrega seu site dentro de um frame em outro site e faz parecer que o site \u00e9 leg\u00edtimo.<\/p>\n<p>Por exemplo, se seu site exige que um usu\u00e1rio fa\u00e7a login, o site malicioso pode estar registrando o nome de usu\u00e1rio e as senhas de usu\u00e1rios que fazem login por meio de seu site emoldurado por meio de um ataque de clickjacking.<\/p>\n<p>Felizmente, evitar clickjacking no WordPress \u00e9 bastante simples. Voc\u00ea pode simplesmente adicionar este pequeno trecho de c\u00f3digo em seu <code>functions.php<\/code>arquivo para definir o <code>X-FRAME-OPTIONS<\/code>cabe\u00e7alho para<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>Isso enviar\u00e1 um cabe\u00e7alho junto com o WordPress que informa aos navegadores para impedir que as p\u00e1ginas apare\u00e7am em quadros que n\u00e3o estejam hospedados no mesmo dom\u00ednio do seu site.<\/p>\n<h2>Clickjacking e navegadores mais antigos<\/h2>\n<p>Navegadores mais antigos (navegadores mais antigos que o Internet Explorer 8 (IE8)) n\u00e3o entendem o <code>X-FRAME-OPTIONS<\/code>cabe\u00e7alho, ent\u00e3o temos que recorrer ao JavaScript. Para isso voc\u00ea pode usar o seguinte c\u00f3digo:<\/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>Dentro do seu tema, crie uma pasta chamada <code>JS<\/code>e recorte e cole esse trecho de c\u00f3digo em um arquivo chamado <code>clickjack-protection.js<\/code>.<\/p>\n<p>\u00c9 claro que queremos apenas enfileirar o script acima para carregar navegadores anteriores ao IE8, para que possamos usar uma boa e velha instru\u00e7\u00e3o condicional para fazer isso, colocando o seguinte c\u00f3digo em seu <code>functions.php<\/code>arquivo:<\/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\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wholesomecode.ltd\" class=\"external external_icon\">wholesomecode.ltd<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O clickjacking \u00e9 um risco de seguran\u00e7a potencial causado por algu\u00e9m que carrega seu site dentro de um frame em outro site e faz parecer que o site \u00e9 leg\u00edtimo, mas o&#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":[1170],"class_list":["post-228507","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/228507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=228507"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/228507\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/224174"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=228507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=228507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=228507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}