V1.5.4 Input and Output Architecture
Requirement:#
Verify that output encoding occurs close to or by the interpreter for which it is intended. (C4)
Explanation:#
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π° ΠΈ ΠΎΠ±ΡΠ°ΡΠ°Π΅Ρ ΠΎΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½.
1 Output Encoding:
- ΠΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ - ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΠ°ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π½Π΅Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ², Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌ, Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ).
2 Close to or by the Interpreter:
- This part of the requirement stresses that output encoding should be performed as close to the point of interpretation as possible. In other words, it should be done just before the data is consumed by the component that interprets and processes it.
3 Significance:
- ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ΅Π»ΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ injection Π°ΡΠ°ΠΊ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Cross-Site Scripting (XSS) ΠΈ SQL Injection, Π·Π° ΡΡΠ΅Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ executable ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅.
4 Explaination:
- ΠΠΎΠ³Π΄Π° Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΡΡΡΡΡ Π² Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π±Π»ΠΈΠ·ΠΎΡΡΠΈ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°, ΡΡΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ° Π±ΡΠ΄Π΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
- Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, HTML, JavaScript) Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ΠΎΠΌ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ JavaScript Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΠ½ΠΈΠΆΠ°Π΅Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ XSS-Π°ΡΠ°ΠΊ.
- Π ΡΠ»ΡΡΠ°Π΅ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ SQL ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π² SQL-Π·Π°ΠΏΡΠΎΡΡ, Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡΠ°. ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ Π°ΡΠ°ΠΊΠΈ SQL Injection, Π³Π°ΡΠ°Π½ΡΠΈΡΡΡ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠ΅, Π° Π½Π΅ ΠΊΠ°ΠΊ SQL-ΠΊΠΎΠ΄.
5 Example:
- ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π²Π°Ρ Π΅ΡΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ HTML. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ HTML, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ, Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π² HTML Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π»ΡΠ±ΡΠ΅ HTML-ΡΠ΅Π³ΠΈ Π±ΡΠ΄ΡΡ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ, Π° Π½Π΅ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄.
6 Implementation:
- Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈΠ»ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ·ΡΠΊΠ° ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ HTML Π΄Π»Ρ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·Π°ΡΠΈΡ SQL Π΄Π»Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ).
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΡΡΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°.
ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΡ Π²Π²Π΅Π». ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄, Π° Π½Π΅ ΡΠ΅ΠΊΡΡ. Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π²ΡΠ΅ ΡΠΎΡΠΌΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π°, Π³Π΄Π΅ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π³Π΄Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .
ΠΠ°ΡΠ½ΠΈΡΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΡΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° Π²Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. Π€ΡΠ½ΠΊΡΠΈΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Ρ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ².
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΈΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΊΡΡΡΡ ΠΏΡΠΎΠ±Π΅Π»Ρ Π² ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅, Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π°. ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅, Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π°. Π‘ΠΏΠΈΡΠΎΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡ HTML, JS, URL-Π°Π΄ΡΠ΅ΡΠ° ΠΈ CSS. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ»Π°Π±ΡΡ ΠΌΠ΅ΡΡ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Remediation:#
ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° Π²ΡΠ²ΠΎΠ΄Π° Π΄Π»Ρ "HTML ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ²"#
Β«ΠΠΎΠ½ΡΠ΅ΠΊΡΡ HTMLΒ» ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Π²ΡΡΠ°Π²ΠΊΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΡΠ΅Π³Π°ΠΌΠΈ HTML, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ aor.
ΠΠ»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΊΠ°ΠΊ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π°ΡΠ°ΠΊΠΈ Π½Π° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ.$varUnsafe
Π§ΡΠΎΠ±Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² HTML-ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ HTML Π΄Π»Ρ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΈ Π΅Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π² Π²Π΅Π±-ΡΠ°Π±Π»ΠΎΠ½.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° Π²ΡΠ²ΠΎΠ΄Π° Π΄Π»Ρ "ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² Π°ΡΡΠΈΠ±ΡΡΠΎΠ² HTML"#
Β«ΠΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² HTMLΒ» ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ° HTML. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΡ, ΡΠΊΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈ CSS. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² HTML ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌΡΠΌ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² HTML.Β
ΠΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°Π²ΡΡΠΊΠΈ, Π΄Π»Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . Π¦ΠΈΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΡΡΡΠ΄Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ XSS. Π¦ΠΈΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠΊΡΠ°ΡΠ°Π΅Ρ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌ, Π° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° Π²ΡΠ²ΠΎΠ΄Π° Π΄Π»Ρ "ΠΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² JavaScript"#
Β«ΠΠΎΠ½ΡΠ΅ΠΊΡΡΡ JavaScriptΒ» ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ JavaScript, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ Π²Π½Π΅Π΄ΡΡΠ΅ΡΡΡ Π² HTML-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ. ΠΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ JavaScript, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π² ΠΈΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Β«Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ΅Β» ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² JavaScript Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΡΡΡΠΈ Β«Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΡΠΈΡΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ Β». ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ, ΠΈ Π² Π½ΠΈΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅.
ΠΡΠΈΠΌΠ΅ΡΡ "ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΡΠΈΡΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ "
ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ JavaScript OWASP Java Encoder
ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° Π²ΡΠ²ΠΎΠ΄Π° Π΄Π»Ρ "ΠΠΠΠ’ΠΠΠ‘Π’ΠΠ CSS"#
Β«ΠΠΎΠ½ΡΠ΅ΠΊΡΡΡ CSSΒ» ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌ Π²ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ CSS. ΠΡΠΎ ΡΠ°ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΡΠ²ΠΎΠΈΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ. CSS ΠΌΠΎΡΠ½ΡΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ² Π°ΡΠ°ΠΊ. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° CSS. ΠΡΡΠ³ΠΈΠ΅ Β«ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ CSSΒ» Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ, ΠΈ Π²Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π² Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° Π²ΡΠ²ΠΎΠ΄Π° Π΄Π»Ρ "ΠΠΠΠ’ΠΠΠ‘Π’ΠΠ URL"#
Β«ΠΠΎΠ½ΡΠ΅ΠΊΡΡΡ URLΒ» ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌ Π² URL-Π°Π΄ΡΠ΅Ρ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠ»ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ URL-Π°Π΄ΡΠ΅ΡΠ° Π² Π±Π°Π·Ρ URL-Π°Π΄ΡΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ URL-Π°Π΄ΡΠ΅ΡΠΎΠ² Π΄Π»Ρ ΡΡΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π².
ΠΠΎΠ΄ΠΈΡΡΠΉΡΠ΅ Π²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΡΠΎΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ, ΠΊΠ°ΠΊ js ΠΈ CSS.
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°#
Π ΡΠΈΡΡΠ°ΡΠΈΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ URL-Π°Π΄ΡΠ΅Ρ Π² ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°Ρ . Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ URL-Π°Π΄ΡΠ΅ΡΠΎΠ², Π·Π°ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² HTML.