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

InformationsquelleAutor Federico klez Culloca | 2009-10-19

Schreibe einen Kommentar