# 🌐 Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ экранирования Π² Ρ‚Π΅Π»Π΅ HTTP-запроса Π’ Ρ‚Π΅Π»Π΅ HTTP-запроса (Π² URL, JSON, form-data, XML ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…) **Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ символы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ экранированы**, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ синтаксис ΠΈΠ»ΠΈ Π½Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. --- ## πŸ”’ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (URL encoding) | Π‘ΠΈΠΌΠ²ΠΎΠ» | НазначСниС / ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° экранирования | ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° (URL encoding) | |--------|------------------------------------|---------------------------| | ` ` (ΠΏΡ€ΠΎΠ±Π΅Π») | Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ β€” Π½Π΅ допускаСтся Π² URL | `%20` ΠΈΠ»ΠΈ `+` | | `"` | Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π» Π² JSON/XML | `%22` | | `'` | Апостроф (ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ SQL/XML/HTML) | `%27` | | `<` | Π’Π΅Π³ Π² HTML/XML | `%3C` | | `>` | Π’Π΅Π³ Π² HTML/XML | `%3E` | | `&` | Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² | `%26` | | `=` | РаздСляСт имя ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ | `%3D` | | `?` | Начало query-строки | `%3F` | | `/` | Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΏΡƒΡ‚ΠΈ | `%2F` | | `\` | Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² JSON/JS | `%5C` | | `#` | Π―ΠΊΠΎΡ€ΡŒ Π² URL | `%23` | | `%` | ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ для escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ | `%25` | | `:` | Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ схСмы URL | `%3A` | | `@` | Π’ URL ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠ½ | `%40` | | `+` | ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π΅Π» Π² `application/x-www-form-urlencoded` | `%2B` | | `{` `}` | JSON-структуры | `%7B` `%7D` | | `[` `]` | ΠœΠ°ΡΡΠΈΠ²Ρ‹ / JSON | `%5B` `%5D` | | `,` | Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π² CSV, JSON ΠΈ Π΄Ρ€. | `%2C` | --- ## πŸ“Œ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ экранирования URL Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ URL: ``` https://example.com/api?query=тСст & Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ``` ПослС экранирования: ``` https://example.com/api?query=%D1%82%D0%B5%D1%81%D1%82%20%26%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 ``` --- ## πŸ“Ž ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π² JSON JSON с ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ ΠΈ спСцсимволами: ```json { "message": "ΠŸΡ€ΠΈΠ²Π΅Ρ‚ \"ΠΌΠΈΡ€\" " } ``` ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ: ```json { "message": "ΠŸΡ€ΠΈΠ²Π΅Ρ‚ \\"ΠΌΠΈΡ€\\" \\u003Cscript\\u003Ealert(\\'xss\\');\\u003C/script\\u003E" } ``` --- ## 🧠 Π‘ΠΎΠ²Π΅Ρ‚ - Π’ URL ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ `encodeURIComponent()` (JavaScript) ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках. - Π’ JSON-строках ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ escape-символ `\` ΠΈ Unicode-ΠΊΠΎΠ΄Ρ‹. - Для `application/x-www-form-urlencoded` β€” ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠΉΡ‚Π΅ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ `+` вмСсто ΠΏΡ€ΠΎΠ±Π΅Π»Π°.