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?

18
demandé sur Victor Häggqvist 2011-05-04 13:13:47

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
60
répondu Dg Jacquard 2012-07-25 06:55:35

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;
}
3
répondu udjamaflip 2011-05-04 09:17:21

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>
1
répondu dhaupin 2016-01-26 14:45:34

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

https://stackoverflow.com/a/19773719/1641233

0
répondu Abdalla Mohamed Aly Ibrahim 2017-05-23 11:47:10

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.

-3
répondu Jaimal Chohan 2011-05-04 09:17:07