O cabeçalho como X-Frame-Options serve para evitar que a página seja aberta em um frame, ou iframe. Desta forma, você pode evitar ataques de clickjacking em seu site.
Por exemplo, se o site https://atlanticadigital.net contiver o cabeçalho X-FRAME-OPTIONS com o valor Allow-From https://www.facebook.com, então o site https://atlanticadigital.net só poderá ser “emoldurado” do domínio www.facebook.com.
Outra opção seria negar sempre o enquadramento (DENY), ou dizer que só pode ser enquadrado da mesma origem (SAME-ORIGIN).
Estes são os valores que aceita:
NEGAR
A página não pode ser exibida em um frame/iframe.
MESMA ORIGEM
Ele só pode ser exibido em um frame/iframe de seu próprio domínio.
PERMITIR DE uri
Só pode ser exibido em frame/iframe a partir das urls indicadas.
Se usarmos Wordpress como CMS, a melhor maneira de adicionar este cabeçalho seria adicionando algumas linhas de código aos arquivos funções.php do tema WordPress que estamos usando.
Este arquivo está localizado no caminho wp-content/themes/THEME_NAME, onde THEME_NAME é o nome do tema que ativamos.
Primeiramente faremos um backup do arquivo functions.php. Em seguida, editamos e adicionamos o seguinte código no final:
add_action('send_headers', 'add_header_xframeoptions');
função add_header_xframeoptions() {
header('X-Frame-Options: SAMEORIGIN' );
}
Existem outras maneiras de adicionar este cabeçalho. Se tivermos o Apache como servidor web podemos usar o arquivo .htaccess, adicionando o código indicado abaixo:
O cabeçalho sempre acrescenta X-Frame-Options SAMEORIGIN
Se você estiver usando o Nginx, deverá inserir o seguinte código no arquivo de configuração do Nginx:
add_header X-Frame-Options SAMEORIGIN;
Você pode encontrar mais informações técnicas na Mozilla Developer Network.
Se quisermos adicionar outros cabeçalhos de segurança com base nas alterações no arquivo functions.php, podemos fazê-lo usando uma única função, em vez de adicionar cada cabeçalho em uma função diferente, embora a operação seja semelhante.
No código de exemplo a seguir, que deve ser colocado no final do arquivo function.php, são adicionados os cabeçalhos X-Content-Type-Options, X-Frame-Options e X-XSS-Protection:
add_action('send_headers', 'add_header_security');
função add_header_security() {
header('X-Content-Type-Options: nosniff');
header('X-Frame-Options: SAMEORIGIN' );
header( 'X-XSS-Protection: 1;mode=bloco' );
}
Caso desejemos adicionar os cabeçalhos no arquivo .htaccess, as linhas a serem adicionadas seriam assim:
Cabeçalho sempre definido Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
O cabeçalho sempre define a política de segurança de conteúdo "solicitações inseguras de atualização"
O cabeçalho sempre define X-Content-Type-Options "nosniff"
Cabeçalho sempre definido X-XSS-Protection "1; mode=block"
O cabeçalho sempre define Expect-CT "max-age=7776000, aplicar"
Cabeçalho sempre definido Referrer-Policy: "no-referrer-when-downgrade"
Conjunto de cabeçalho X-Frame-Options SAMEORIGIN