Ich habe eine Funktion implementiert, die auf jeder Seite ausgeführt wird, die ich von nicht angemeldeten Benutzern einschränken möchte. Die Funktion leitet den Besucher automatisch auf die Anmeldeseite um, falls er nicht eingeloggt ist.
Ich möchte eine PHP-Funktion erstellen, die von einem externen Server ausgeführt wird und eine Reihe von festgelegten URLs (Array mit URLs für jede geschützte Site) durchläuft, um zu sehen, ob sie umgeleitet werden oder nicht. Dadurch konnte ich leicht sicherstellen, dass der Schutz auf jeder Seite aktiv ist.
Wie könnte das gemacht werden?
Danke.
Ich benutze curl und nehme nur Header, nachdem ich meine URL und URL von Header curl:
verglichen habe %Vor%Ich bin mir nicht sicher, ob das als Sicherheitscheck wirklich Sinn macht.
Wenn Sie befürchten, dass Dateien direkt aufgerufen werden, ohne dass Ihr Benutzer angemeldet ist? checks ausgeführt werden, könnten Sie tun, was viele große PHP-Projekte tun: Definieren Sie in der zentralen include-Datei (wo die Sicherheitsprüfung stattfindet) eine Konstante BOOTSTRAP_LOADED
oder was auch immer, und prüfen Sie in jeder Datei, ob diese Konstante gesetzt ist.
Testen ist großartig und Sicherheitstests sind noch besser, aber ich bin mir nicht sicher, welche Art von Schwachstellen Sie damit aufdecken wollen? Diese Idee ist für mich eine Zeitverschwendung, die keine wirkliche zusätzliche Sicherheit bringt.
Stellen Sie nur sicher, dass Ihr Skript die()
s nach dem header("Location:...")
redirect ist. Das ist wichtig, um zu verhindern, dass zusätzlicher Inhalt nach dem Header-Befehl angezeigt wird (ein fehlender Die () würde übrigens nicht von Ihrer Idee erfasst, da der Redirect-Header immer noch ausgegeben würde ...)
Wenn Sie das wirklich tun möchten, können Sie auch ein Tool wie wget
verwenden und es mit einer Liste versehen von URLs. Lassen Sie die Ergebnisse in ein Verzeichnis holen und überprüfen Sie (z. B. anhand der Dateigrößen, die identisch sein sollten), ob jede Seite den Anmeldedialog enthält. Nur um eine weitere Option hinzuzufügen ...
Ich habe die Antwort von Adam Backstrom geändert und den chiborg-Vorschlag implementiert. (Laden Sie nur HEAD herunter). Es hat noch eine Sache: Es wird überprüft, ob die Umleitung auf einer Seite des gleichen Servers ist oder nicht. Beispiel: terra.com.br leitet zu terra.com.br/portal um. PHP wird es wie Redirect berücksichtigen, und es ist korrekt. Aber ich wollte nur diese URL auflisten, die zu einer anderen URL umleitet. Mein Englisch ist nicht gut, also, wenn jemand etwas wirklich schwer zu verstehen gefunden hat und dies bearbeiten kann, ist es uns willkommen.
%Vor%