2017-09-04 2 views
-2

gibt es eine Web App. Es sollte nur in einem bestimmten Iframe (Corp.-Site) verfügbar sein, so dass ungebetene Gäste per Skript zur Client-Website weitergeleitet werden. Code unten funktioniert, aber Java könnte im Browser deaktiviert werden. IP-Whitelist wäre eine gute Lösung, aber zu viele dynamische IP wird verwendet.Erkennen ist Website in Iframe geöffnet und umleiten

Welcher PHP-Trick kann verwendet werden, um zu überprüfen, ist Site in Iframe geöffnet?

<script> 
       if (top === self) window.location.replace('http://uninvited-guests-go.here'); 
</script> 
<?php header('X-Frame-Options: ALLOW-FROM https://iframe.allow.only'); ?> 
+0

Kein Duplikat. Dieser Frager fragt, wie man es rein in PHP macht, während das verlinkte vermeintliche Duplikat eine Javascript-Lösung sucht (und erhalten hat). –

Antwort

0

PHP keine Möglichkeit zu wissen hat, was im Browser geschieht, aber wie Sie bemerkt haben, können Sie Javascript zuverlässig die Existenz eines iframe mit window.top === window.self; bestimmen Wenn Sie sich mit einer reinen PHP-Lösung festgelegt sind, Sie können in Ihrer URL einen GET Parameter senden, um PHP mitzuteilen, welche Gäste eingeladen sind und welche nicht.

<?php 
// yousite.com <-- uninvited user 
// yoursite.com?invited=1 <-- invited user 

if (isset($_GET['invited']) && $_GET['invited'] === 1) { 
    // handle your invited guests here 
} 

Sie werden auch dieses GET param auf Ihre iFrame Quelle hinzufügen müssen.