2016-07-31 13 views
-1

Ich habe einen "embed code" innerhalb meiner Website, die einfach ein iframe ist Ich würde diesen Code nur bestimmte Benutzer einbetten geben, aber weiß nicht, wie zu tun ist. Ein Benutzer könnte den HTML-Code von den autorisierten Seiten einsehen und den Code ohne Erlaubnis erhalten. Wie mache ich meine Website nur autorisierte Benutzer? Ich dachte über $ _SERVER ['HTTP_REFERER'], aber sobald Sie auf einen Link zu dem internen Frame klicken, ist der Referrer verloren.Iframe zeigt autorisierte Benutzer

+0

Das hängt wirklich davon ab, wie Sie es tun möchten. Du könntest dich anmelden. Sie könnten einen Link verwenden, der mit einer Datenbank testet. Du könntest eine Software bekommen, die auf die MAC-Adresse testet und php 'exec()' drauf hat. Das klingt, als ob du nach einer Meinung suchst. Wo ist dein Code? – PHPglue

Antwort

0

Sie können nicht wirklich vermeiden, dass eine autorisierte Person die URL des Inline-Frames prüft und sie einer unbefugten Person anzeigt. Die richtige Vorgehensweise besteht darin, einem unautorisierten Benutzer eine leere/Fehlerseite zu liefern.

Sie können dies erreichen, indem Sie bei der Benutzeranmeldung eine Sitzung erstellen und diese Sitzung im Quellcode die Seite überprüfen, die im Inlineframe angezeigt wird.

Verlassen Sie sich nicht auf Referrer, es ist leicht spoofable und einige Browser werden es nicht sogar einstellen. Sitzungscookies können nicht gefälscht werden, es sei denn, der Benutzer kennt die Anmeldeinformationen, mit denen er erstellt wurde, wodurch er autorisiert wird, unabhängig davon, ob er authentifiziert ist oder nicht.

0

Überprüfen Sie den Benutzer mit js.

<iframe src="verify.php">... 

verify.php enthält:

<?php 
session_start(); 
$id= generate sth random; 
$_SESSION["id"]=$id; 
?> 
<script> 
window.location="http:yourdomain/site.php?id=<?php echo $id;?>&referrer="+document.referrer; 
</script> 
Loading... 

Jetzt können Sie die Referrer überprüfen, um zu überprüfen, ob die Website korrekt ist und die ID zu überprüfen, ob niemand versucht, Sie zu betrügen ...

<?php 
session_start(); 
if($_SESSION["id"]!=$_GET["id"] or $$_GET["referrer"]!="allowedsite.com"){ 
    echo "not valid"; 
    die(); 
} 
?> 

Wie Thomas Hübelbauer bemerkte, konnten Leute Ihren Code noch kopieren. Das einzige, was Sie dagegen tun können, ist die Verschleierung und die Verwendung relativer Links. Das macht es schwer zu kopieren.

Verwandte Themen