Funktioniert die Verwendung von IsValid() zur Validierung einer E-Mail-Adresse oder eines URL-Formats vor XSS? Negiert XSS, wenn andere Formate angegeben sind?Schützt IsValid() vor XSS?
Antwort
Eine gültige URL kann immer noch einen Angriffsvektor enthalten:
<!--- No on CF9 --->
<cfoutput>#isValid("url", "http://www.mydomain.com/products/products.asp?productid=123; DROP TABLE Products")#</cfoutput>
<!--- Yes on CF9: hex encoded ';DROP TABLE Products' --->
<cfoutput>#isValid("url", "http://www.mydomain.com/products/products.asp?productid=123%3B%20%44%52%4F%50%20%54%41%42%4C%45%20%50%72%6F%64%75%63%74%73")#</cfoutput>
die oben Zugegeben ist kein XSS-Angriff, aber es könnte geändert werden, um stattdessen Spalten mit einem Angriff zu aktualisieren.
E-Mail-Validierung scheint zu verhindern the attacks I could find. Als Verallgemeinerung hilft isValid()
XSS-Attacken zu verhindern, wenn der Datentyp endlich ist - Ganzzahlen, SSNs, UUIDs, etc .. jedoch there's a laundry list of documented potential attacks gegen Felder, deren einziger Datentyp per se "String" ist. In diesem Fall ist isValid()
keine Hilfe, stattdessen ist OWASP's AntiSamy ein nützliches Werkzeug für diesen Zweck, das das DOM durchquert und alles entfernt, was nicht auf der weißen Liste steht.
Best regex to catch XSS (Cross-site Scripting) attack (in Java)? bietet viele nützliche Informationen zum allgemeinen Thema der XSS-Prävention.
Und schließlich den Punkt, Gebrauch belabor:
<cfqueryparam cfsqltype="..." value="...">
aktualisieren
Last, but not least, OWASP XSS Cheat Sheet: beste Satz von Heuristiken gibt für Eingangsverarbeitungs XSS zu verhindern.
- 1. Schützt HTTPS vor Sitzungsreiten?
- 2. Wie schützt man vor Manipulation der Abfragezeichenfolge?
- 3. Wie schützt man eine Geschwindigkeitsvorlage vor Manipulationen?
- 4. Wie schützt man Spammer vor Apache?
- 5. Schützt Realm für React Native vor Injektionsattacken?
- 6. Gibt es eine JavaScript-HTML-Vorlage, die sowohl Null-Koaleszenz ("undefined" sicher) unterstützt als auch vor XSS schützt?
- 7. GWT HTML Widget XSS Sicherheit
- 8. Wie schützt man diesen Code vor SQL-Injektion?
- 9. Wie schützt man einen Online-Richter vor bösartigem Code?
- 10. Schützt AWS meine Website vor Angriffen durch DDoS?
- 11. Schützt GCC Programmierer vor mehrfacher Einbeziehung von C-Bibliotheksheadern?
- 12. Wie schützt man Mac OS X-Software vor Rissen?
- 13. Schützt Hibernate Criteria Api vollständig vor SQL Injection
- 14. PDO ausführen ($ input_parameter) schützt vor SQL-Injektionen als bindParam/bindValue?
- 15. Wie schützt man ein Servlet vor externen Benutzern?
- 16. Reinigen von JSON für XSS vor dem Deserialisieren
- 17. Ist createTextNode völlig sicher vor HTML-Injection & XSS?
- 18. ModSecurity Schutz vor XSS Typ 0 Attacken und Auswirkungen
- 19. Bietet Bind() oder Eval() automatisch HtmlEncode zum Schutz vor XSS?
- 20. Eingabe ist URL, wie es vor XSS zu schützen
- 21. Anti-XSS Java-Bibliotheken
- 22. Meteor xss Code
- 23. Java's protected schützt nicht
- 24. Wie schützt IIFE Namespacing?
- 25. Intellisense zeigt nicht IsValid für Model
- 26. Was genau ist Laravels isValid-Methode?
- 27. isValid() -Methode gibt false in symfony zurück
- 28. glut-Daten isValid, isSaving und isError
- 29. isValid in zend Rahmenform liefert FALSE
- 30. verhindern XSS-Angriffe in JSPs