Sanitize $_GET Parameter zu vermeiden, XSS und andere Angriffe
Ich habe eine Webseite in php, die funktioniert include() einbetten von Inhalten in ein template. Die Seite zu laden, wird in einem get-parameter, die ich hinzufügen ".php" am Ende des Parameters und schließen Sie die Seite. Ich brauche einige Sicherheit überprüfen, um zu vermeiden, XSS oder andere Sachen (nicht mysql-injection, da wir nicht über eine Datenbank). Was ich mir ausgedacht habe ist folgende.
$page = $_GET['page'];
if(!strpos(strtolower($page), 'http') || !strpos($page, '/') ||
!strpos($page, '\\') || !strpos($page, '..')) {
//append ".php" to $page and include the page
Ist es eine andere Sache, die ich tun kann, um im sanitize mein input?
Überprüfen Sie nicht das Ergebnis von strpos () - es wird null zurückgeben, wenn das Spiel am Anfang der Zeichenfolge, die zu false ausgewertet
die acceppted Lösung ermöglicht es mir, zu vermeiden, dass auch, trotzdem vielen Dank, ich werde daran denken Ihre Tipps für zukünftige code.
Siehe auch: stackoverflow.com/a/15825812/59087
die acceppted Lösung ermöglicht es mir, zu vermeiden, dass auch, trotzdem vielen Dank, ich werde daran denken Ihre Tipps für zukünftige code.
Siehe auch: stackoverflow.com/a/15825812/59087
InformationsquelleAutor Federico klez Culloca | 2009-10-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist wahrscheinlich die Schnellste Art und Weise zu desinfizieren, dies dauert etwas und stellen Sie sicher, dass es nur enthält Buchstaben, zahlen, Unterstriche oder Bindestriche.
beide links sind über die mysql-und diese Frage ist nicht zu sql-injection
InformationsquelleAutor Mez
Nicht "desinfizieren" - Angriffe sind spezifisch für die Nutzung von Daten, nicht die Quelle. Escape-Werte, wie Sie bei der Ausgabe statt. Siehe auch meine Antwort auf Was ist die beste Methode für die Desinfektion der Benutzereingaben mit PHP?
InformationsquelleAutor troelskn
Definieren Sie eine explizite Liste von Seiten, die Sie in Ihrem source-code und dann verwenden, um überprüfen Sie die Eingabe. Ja, es ist mehr Arbeit, aber es macht es sehr klar, was erlaubt ist und was nicht. Zum Beispiel:
InformationsquelleAutor Lukáš Lalinský