it-swarm-eu.dev

Come aggiungere l'intestazione X-Frame-Options a un semplice file HTML?

Ho problemi con l'aggiunta di X-Frame-Options intestazione in un semplice file HTML.

C'è un modo per farlo usando JavaScript?

6
sam

L'intestazione X-Frame-Options viene aggiunta sul lato server, non sul client. Questo perché l'intestazione viene utilizzata per controllare il modo in cui il browser deve eseguire il rendering della pagina.

Qualunque sia il server che ospita il tuo file dovrebbe aggiungere questa intestazione.

15
Dan Landberg

X-Frame-Options è un'intestazione HTTP. Pertanto, non fa parte dell'HTML e non può essere impostato all'interno di un documento HTML.

Uno dei motivi per cui è solo un'intestazione HTTP è che i client dovrebbero essere in grado di decidere se il documento può essere incorporato in un frame prima analizzando il codice HTML.

Pertanto, non è possibile ottenerlo modificando il file ma è necessario modificare la risposta HTTP del server. In genere, ciò viene eseguito nelle impostazioni fornite dal software del server Web o con una lingua lato server.

Ad esempio, un'impostazione in Apache potrebbe apparire così:

Header always append X-Frame-Options DENY

Oppure, in PHP potresti impostare l'intestazione in questo modo:

<?php header('X-Frame-Options: DENY'); ?>

Nota che esiste un CSP più moderno frame-ancestors . Ma mentre alcuni criteri CSP possono essere impostati come <meta> tag, non è possibile qui. Questo non funziona :

<head>
  <!-- This does *not* work! -->
  <meta http-equiv="Content-Security-Policy" content="frame-ancestors 'none'">
</head>

Dai anche un'occhiata al Cheat Sheet di Clickjacking Defense per una panoramica delle misure di difesa di clickjacking oltre all'impostazione dell'intestazione XFO.

28
Arminius

Dato che nei commenti menzioni che IIS è il tuo server web, sì, c'è un modo per impostarlo sul server web stesso.

Molte delle altre risposte menzionano l'aggiunta a web.config, che è un'opzione eccellente se si tratta di un'applicazione ASP.NET, ma esiste un altro modo che funziona per any applicazione web fornita da IIS, indipendentemente dalla tecnologia.

Se apri Internet Information Services (IIS) Manager ed espandi il nodo in Sites nel riquadro di navigazione ed evidenzi il tuo sito, sotto il gruppo di funzionalità IIS nel riquadro Visualizzazione funzionalità, c'è una funzione chiamata HTTP Response Headers. Se si apre questo nodo, nel riquadro Actions sulla destra, viene visualizzata un'azione per aggiungere un'intestazione. Aggiungi l'intestazione con il X-Frame-Options nome e qualunque sia il valore desiderato, e verrà aggiunto da IIS a ogni risposta pubblicata da quel sito.

0
Xander