V5.1.3 Input Validation
Requirement:#
Verify that all input (HTML form fields, REST requests, URL parameters, HTTP headers, cookies, batch files, RSS feeds, etc) is validated using positive validation (allow lists). (C5)
Explanation:#
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅, Π½ΠΎ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΡΡΠΎ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ .
Remediation:#
ΠΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ Β«Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ Π² Π±Π΅Π»ΡΠΉ ΡΠΏΠΈΡΠΎΠΊΒ», β ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΡΠΈΡΠΊ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ SQL ΠΈ ΠΌΠ΅ΠΆΡΠ°ΠΉΡΠΎΠ²ΡΠΉ ΡΠΊΡΠΈΠΏΡΠΈΠ½Π³ (XSS). ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JavaScript Π΄Π»Ρ ΠΏΠΎΠ»Ρ HTML-ΡΠΎΡΠΌΡ:
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² validEmails ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ² ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ. ΠΠ΅ΡΠΎΠ΄ indexOf ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π°Π»ΠΈΡΠΈΡ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅. ΠΡΠ»ΠΈ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΡΠΏΠΈΡΠΊΠ΅, ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΡΠΌΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ² Π²Π²ΠΎΠ΄Π°, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π·Π°ΠΏΡΠΎΡΡ REST, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ URL, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ HTTP, ΡΠ°ΠΉΠ»Ρ cookie, ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ RSS-ΠΊΠ°Π½Π°Π»Ρ, ΠΏΡΡΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ· ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. . Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°.
Additional:#
https://json-schema.org/ https://docs.djangoproject.com/en/1.11/ref/validators/ https://owasp.org/www-community/OWASP_Validation_Regex_Repository https://cwe.mitre.org/data/definitions/20.html