Comment bloquer L'appel Iframe
récemment, mon site complet est appelé iframe par deux autres domaines. Je voudrais bloquer d'autres sites, qui tentent d'afficher mon site en iframe.
Comment puis-je bloquer les que par .htaccess?
5 réponses
Vous pouvez définir la variable dans l'en-tête X-Frame-Options: Refuser.
tous les navigateurs modernes prennent en charge L'en-tête X-Frame-Options.
Facebook utilise cet en-tête pour désactiver iframe/framesets (aussi Javascript).
si vous avez activé les mod_headers dans apache:
.htaccess
Header set X-Frame-Options DENY
mais, vous pouvez activer iframes viennent de la même origine.
Header always append X-Frame-Options SAMEORIGIN
Ou Nginx:
add_header X-Frame-Options Deny; #or SAMEORIGIN
Navigateur compatibilité: Source
- Internet Explorer: 8.0
- Firefox (Gecko): 3.6.9 (1.9.2.9)
- Opéra: 10.50
- Safari: 4.0
- Chrome: 4.1.249.1042
je ne pense pas que vous le pouvez dans .htaccess, vous pouvez utiliser JS cependant. Vous pouvez utiliser une fonction comme celle-ci pour vérifier:
function parentIsSameOrigin()
{
var result = true;
if (window.parent)
{
result = Boolean
(
// more precise modifications needed here
window.this.location.href.indexOf(window.parent.location.href) == 0
);
}
return result;
}
vous ne pouvez pas "l'appliquer" à volonté puisqu'il y a des solutions, mais vous pouvez utiliser la méthode d'en-tête standard. html5-boilerplate a une belle vhost/htaccess extrait qui met en premier X-Frame-Options
comme votre choix de DENY/SAMEORIGIN/ALLOW-FROM
, et permet ensuite les types MIME whitelist pour une utilisation dans les bons cadres tels que la recherche d'image Google.
consultez le lien pour la dernière, Mais voici l'exemple du 25 janvier 2016 en SAMEORIGIN
mode:
<IfModule mod_headers.c>
Header set X-Frame-Options "SAMEORIGIN"
<FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ico|jpe?g|js|json(ld)?|m4[av]|manifest|map|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|topojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|webmanifest|woff2?|xloc|xml|xpi)$">
Header unset X-Frame-Options
</FilesMatch>
</IfModule>
vous pouvez utiliser .htaccess comme suit
RewriteEngine On
RewriteCond %{QUERY_STRING} !^id=[^&]+ [NC]
# if referrer is bad.com
RewriteCond %{HTTP_REFERER} (www\.)?bad\.com [NC]
# then redirect to a different page
RewriteRule !^404.shtm [L,NC,R=302]
vous devrez vous fier à HTTP_REFERER pour cela ce code redirigera toutes les requêtes de la bad.com à la page introuvable
cette solution a contribué à cette réponse
Umm, Je ne pense pas que vous pouvez.
une iframe est un conteneur côté client, ce qui signifie que le navigateur de l'utilisateur final est responsable de charger le contenu dans l'iframe. Vous ne seriez pas en mesure de faire la différence entre si votre page a été chargée dans une iframe ou non.