Liste von Zeichen zu beschränken, die für den Schutz gegen XSS und SQL-Injections?
Ich gegangen durch eine Menge von Artikeln gibt, um herauszufinden, eine einfache Liste von Zeichen, die einschränken können einen Benutzer von der Eingabe zum Schutz meiner Website vor XSS und SQL-Injections, aber konnte Sie nicht finden jede generische Liste als solche.
Kann mir jemand helfen, indem Sie einfach geben Sie mir eine Liste der sicheren oder unsicheren Zeichen in diesem Zusammenhang? Ich weiß, das kann Feld spezifisch, aber ich brauche diese für text Feld wo ich will, zu erlauben maximal möglichen Zeichen.
- vielen Dank allen für Ihre Antworten. so, es scheint, dass ich haben, um die Forschung ein bisschen mehr in diese nur als white-listing Zeichen ist nicht gonna helfen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den "schwarze-Liste" - Ansatz ist mit Problemen behaftet. Für beide SQLi und XSS -, input-Validierung gegen eine white-Liste ist wichtig, d.h. zu definieren, was Sie erwarten sondern als das, was Sie nicht erwarten, dass. Denken Sie auch daran, dass die Benutzereingabe - oder "nicht Vertrauenswürdige Daten" - kommt aus vielen Orten: forms, query strings, Header, ID3-und exif-tags etc.
Für SQLi, stellen Sie sicher, dass Sie immer über parametrierte SQL-Anweisungen, in der Regel in form von stored procedure Parameter oder jeder anständige ORM. Auch gilt das "Prinzip des kleinsten Privilegs" und den Schaden zu begrenzen das Konto eine Verbindung zu Ihrer Datenbank machen kann. Mehr auf SQLi hier: http://www.troyhunt.com/2010/05/owasp-top-10-for-net-developers-part-1.html
Auf dem XSS-vorne, immer Kodieren der Ausgabe und stellen Sie sicher, dass die Kodierung, die es für das entsprechende markup Sprache es erscheint. Ausgabe-Kodierung für JavaScript unterscheidet sich von HTML unterscheidet sich von CSS. Erinnern zu Kodieren, nicht nur die Antworten, die sofort Eingang reflektieren, aber auch nicht Vertrauenswürdige Daten in der Datenbank gespeichert, die halten konnte eine persistente XSS-Gefahr. Mehr über alles das hier: http://www.troyhunt.com/2010/05/owasp-top-10-for-net-developers-part-2.html
Ich weiß, das geht ein bisschen über Ihre ursprüngliche Frage, aber der Punkt ich versuche zu machen ist, dass die zulässigen Zeichen ist aber nur ein kleiner Teil des Bildes. Die anderen Verfahren, die oben erwähnt werden, sind wohl wichtiger (aber Sie sollte immer noch diese weiß-Listen sowie).
Charakter-Filterung ist nicht wie Sie gehen sollten, um die Sicherheit. Um zu verhindern, dass SQL-injection, Nutzung prepared statements. Um zu verhindern, XSS, sollten Sie Flucht alle Benutzereingaben korrekt
Blick auf die Umsetzung von xss-Filterung von Drupal-CMS. Die Funktion hat weiße Liste mit erlaubten HTML-tags, alle anderen Sachen werden mit Escapezeichen versehen werden.