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
Antwort
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.
Ü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.
- 1. Mvc, Autorisiert Bounces autorisierte Benutzer
- 2. auf Klick zeigt Iframe
- 3. Facebook connect in iframe- Popups zeigt in der iframe
- 4. GmailService erstellen Watch() erhalten Benutzer nicht autorisierte Fehler
- 5. Azure App-Service Nicht autorisierte Benutzer Zugriff auf Controller
- 6. MVC leitet autorisierte Benutzer nach Zeitüberschreitung zur falschen URL um
- 7. asp.net Core MVC 6 Eine andere Homepage für autorisierte Benutzer
- 8. So konfigurieren Spring Security + OAuth2 für nicht autorisierte Benutzer
- 9. Nicht autorisierte Ausnahme, ServiceStack
- 10. Benutzer Mailer zeigt Sonderzeichen
- 11. Warum zeigt iframe keine HTML-Datei an?
- 12. Iframe zeigt immer Bildlaufleisten in IE7
- 13. Node.js/Angular.js Admin autorisierte Routen
- 14. Oauth nicht autorisierte Ruby
- 15. Benutzer hochgeladen Bild zeigt nicht
- 16. guzzlephp 401 nicht autorisierte Ausgabe
- 17. Bot Framework v3 nicht autorisierte
- 18. Autorisierte Ansicht oder Konfiguration als autorisiert anzeigen?
- 19. mongodb gibt nicht autorisierte Copydatenbank zurück
- 20. Chrome-Erweiterung: Aktion festlegen, wenn der Benutzer in iframe klickt
- 21. Wie man Benutzer online in PHP zeigt?
- 22. Warum funktioniert Google Map iframe nicht und zeigt den Standort?
- 23. iframe zeigt nur bei Firefox nicht korrekt an?
- 24. Video mit iframe zeigt nicht auf Android Webview
- 25. iFrame-Hintergrundbild zeigt gut in Firefox, aber nicht in IE
- 26. Rendering nur autorisierte (Devise) Benutzerdaten in Rails ohne überschüssiges Leerzeichen
- 27. Wie können Vorlagen mit AngularJS ngView für nicht autorisierte Benutzer ausgeblendet werden?
- 28. Tastypie - Erlauben schreibgeschützten Dauerwellen für nicht authentifizierte Benutzer, während autorisierte Schreibberechtigungen zulassen
- 29. Wie können einige API-Funktionen nur für autorisierte Benutzer in Erlang verfügbar gemacht werden?
- 30. Wie Filtern für autorisierte Benutzer in Visual Studio Team Services (war Visual Studio Online)?
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