PHP: Prüfen ob URL-Umleitungen?
Implementierte ich eine Funktion, läuft auf jeder Seite, die ich will, zu beschränken, die von nicht-angemeldeten Benutzern. Die Funktion automatisch und leitet den Besucher auf die login-Seite in die Falle, die er oder Sie ist nicht angemeldet.
Ich würde gerne eine PHP-Funktion ist die Ausführung von einem externen server und durchläuft eine Reihe von bestimmten URLs (array mit URLs, die für jedes Schutzgebiet), um zu sehen, ob Sie weitergeleitet werden oder nicht. Dadurch konnte ich leicht sicherzustellen, wenn der Schutz ist up und läuft auf jeder Seite.
Wie konnte dies getan werden?
Dank.
- Weiterleitung wie? Genannt, von welchem client? Wenn Sie angemeldet sind oder wenn Sie nicht angemeldet sind? Was für? Würde das Skript verarbeiten, session-cookies und andere komplizierte Dinge?
- Definieren Sie "weitergeleitet URL" bitte.
- Siehe Wie kann ich ermitteln, ob eine URL-Weiterleitungen in PHP?
- Aktualisiert ursprünglichen Frage!
- es ist mehr wie ein scanner zu finden, die eine Sicherheitsanfälligkeit auf dem anderen server.
- Erneut aktualisiert. Scanner ist keine schlechte Beschreibung tatsächlich. Wir laufen eine Anzahl von Instanzen auf dem main-server, der Applikation und jede Anwendung etwas abweichen und angepasst für jeden Kunden. Dabei ist es sehr interessant, einen test durchführen, um festzustellen, dass der Passwort-Schutz ist und läuft überall.
Du musst angemeldet sein, um einen Kommentar abzugeben.
curl_setopt($handle, CURLOPT_NOBODY, true);
. Diese wird nur dann ein HTTP HEAD-request. Auf diese Weise werden Sie nicht haben, zu schneiden aus dem Körper. Siehe auch diesen Artikel: schlitt.info/opensource/blog/...;extension=php_curl.dll
. Entfernen Sie das Semikolon in dieser Zeile, oder, wenn die Zeile nicht vorhanden ist, fügen Sie es ohne die vorangestellte Semikolon, und starten Sie Ihren WAMP-server. Ich denke, es sollte dann funktionieren.Benutze ich curl und nehmen nur die Header, nachdem ich Vergleiche meine url und die url vom header curl:
Können Sie immer versuchen hinzufügen:
seit 302 bedeutet, dass es sich bewegt, lassen Sie den curl-Aufruf zu Folgen und zurückzukehren, was auch immer das verschoben url zurückgibt.
Ich bin mir nicht sicher, ob das wirklich Sinn macht, als einen Sicherheits-check.
Wenn Sie besorgt über die Dateien immer direkt aufgerufen werden, ohne Ihr "ist der Benutzer angemeldet?" - checks ausgeführt werden, könnten Sie tun, was viele große PHP-Projekte: In der zentralen include-Datei (wo der security check gemacht wird) definieren Sie eine Konstante
BOOTSTRAP_LOADED
oder was auch immer, und in jeder Datei, überprüfen Sie, ob diese Konstante ist gesetzt.Testen ist toll und security testing ist sogar noch besser, aber ich bin mir nicht sicher, was für eine Art von Fehler, die Sie suchen, zu entdecken Sie mit diesem? Für mich ist diese Idee fühlt sich wie eine Verschwendung von Zeit, die nicht bringen keine wirkliche zusätzliche Sicherheit.
Nur sicherstellen, dass Ihr Skript
die()
s nach derheader("Location:...")
umleiten. Das ist wesentlich, stoppen zusätzliche Inhalte, die angezeigt wird, nachdem der header-Befehl (einem fehlen die() würde nicht gefangen werden, die durch Ihre Idee, durch die Art und Weise, wie Sie die redirect-header würde noch ausgestellt werden...)Wenn Sie wirklich wollen, dies zu tun, können Sie auch ein tool wie
wget
und füttern Sie eine Liste von URLs. Haben Sie die Ergebnisse abrufen in ein Verzeichnis und überprüfen (z.B. durch die Datei-Größen, die sollten identisch sein), ob jede Seite enthält den login-dialog. Nur fügen Sie eine andere option...Möchten Sie prüfen, ob der HTTP-code, um zu sehen, ob es eine Umleitung?
Können Sie die Sitzung,wenn das session-array ist nicht festgelegt ,wird die url umgeleitet auf eine login-Seite.
.
Ich geändert Adam Backstrom Antwort und umgesetzt chiborg Vorschlag. (Download nur KOPF). Sie haben eine weitere Sache: Es wird überprüft, ob die Umleitung in eine Seite mit dem gleichen server oder aus ist. Beispiel: terra.com.br-Weiterleitungen auf terra.com.br/portal. PHP wird rücksichtsvoll wie es umzuleiten, und es ist richtig. Aber ich wollte nur die Liste, die url, redirect zu einer anderen URL. Mein Englisch ist nicht gut, wenn also jemand etwas gefunden, das wirklich schwer zu verstehen und dieses Bearbeiten können, sind Sie willkommen.
Habe ich gerade eine Funktion, die prüft, ob eine URL existiert oder nicht
Nun habe ich benutzt ein array von URLs zu überprüfen, ob eine URL vorhanden ist, wie folgend:
Kann ich nicht verstehen Ihre Frage.
Sie haben ein array mit den URLs und Sie wollen wissen, wenn sich ein Benutzer von einem der aufgelisteten URLs?
Wenn ich mich Recht verstehen Ihre quest: