2016-06-01 5 views
1

Ich möchte eine weiße Liste machen, die auf einer Webseite zum Beispiel eingegeben, alle nicht autorisierten Zeichen ignoriert:Wie mache ich eine URL-Whitelist-Funktion? php

127.0.0.1/myweb/home.php?u=user // here is the authorized(default) url 

aber, wenn ein Angreifer (Benutzer natürlich) meine Standard-URL wie folgt machen:

127.0.0.1/myweb/home.php/>"><script>alert("XSS")</script>&?u=user 

und wenn der Angreifer drücken Sie neu laden oder eingeben (neuladen der URL mit nicht autorisierten Codes) die bösartigen Codes, die von der Seite neu geladen werden ignoriert und/oder automatisch löschen oder so etwas. Dann wird die neu geladen Seite eine safeurl wie folgt zurück:

127.0.0.1/myweb/home.php?u=user // back to the authorized url/s 

ABER Ich habe keinen Code oder das Wissen, dies zu tun, habe ich versucht, preg_match() zu passen, wenn einige Codes XSS Typ-Codes auf die URL existiert dann wird es auf eine Fehlerseite umgeleitet. Aber einige sagen, dass es nicht ratsam ist, weil es blacklisting genannt wird und das empfohlene ist whitelisting. Ich suche nach Beispielen für Whitelisting, aber ich finde nichts, wonach ich suche. Wenn ich nichts, was ich Whitelisting brauchen finden, könnte ich

Addtional (Fehlerprotokoll Apache) eine preg_match()aka schwarze Liste Art von Code zu tun, auch weiterhin

[Mi 1. Juni 21: 53: 50,244776 2016] [core: error] [pid 3684: tid 1684] (20024) Der angegebene Pfad ist falsch formatiert oder enthält ungültige Zeichen: [client 127.0.0.1:51833] AH00127: Kann nicht zuordnen GET /ooplr2/home.php/%3E%22% 3E% 3Cscript% 3Ealert (% 22XSS% 22)% 3C/index.php HTTP/1.1

Antwort

0

Sie verwenden strip_tags() Funktion in Datei: http://php.net/manual/en/function.strip-tags.php

+0

ist es sicher? Ich meine im Grunde können URL-XSS-Angriffe verhindern? Ich lese einen der Posts im Stackoverflow, da steht, dass es nicht ok ist? ähm, wenn meine Frage durch diese Funktion gelöst wird, werde ich sie wirklich benutzen. Danke – phew

0

Was Sie tun sollten, ist die Validierung der Eingabedaten. Wie Sie bereits erwähnt haben, ist es nicht sicher, sich auf Benutzereingaben zu verlassen, daher sollten Sie sie filtern. In welcher Weise hängt das von Ihren Bedürfnissen ab?

einfache Art und Weise: strip_tags() ->http://php.net/manual/en/function.strip-tags.php

Weise Gewohnheit: regular expressions ->http://regexr.com

+0

Das hängt auch davon ab, wie Sie mit den Eingabedaten arbeiten. Werden sie in PHP oder in SQL-Anweisungen verwendet? Im Falle von sql sollten Sie sich 'PDO' anschauen -> http://php.net/manual/en/book.pdo.php und vorbereitete Statements -> http://php.net/manual/de/pdo .prepare.php – Michael

+0

in der benutzerdefinierten Weise Link Sie zur Verfügung gestellt, auf den Bereich, der sagt: _Sample Text zum Testen: _ Wenn die Zeichen auf meiner Webseite entdeckt es wird entkommen/zu ignorieren oder etwas? Tut mir leid, ich verstehe es nicht. – phew

+0

Ich benutze PDO, aber mein einziges Problem ist URL xss Angriffstyp?! Wann immer ich '/' nach 'home.php' tippe meine Seite gegangen gebrochen _Ich habe nicht einmal Javascript Typ von Tags_ – phew