Перейти до основного вмісту

Коли використовувати кодування URL-адрес, екранування HTML і екранування JSON

Автор: Converty Team

Дізнайтеся, коли кодування URL-адреси, екранування HTML і екранування JSON вирішують різні проблеми безпеки тексту, перш ніж вставляти вміст у шлях, сторінку чи фрагмент даних.

Коли використовувати кодування URL-адрес, екранування HTML і екранування JSON

У втечі легко помилитися, оскільки кілька різних завдань виглядають схожими на відстані. У вас є текст, який містить спеціальні символи, і інша система має отримати його, щоб не зрозуміти його неправильно. Помилкою є припущення, що один вид втечі працює всюди.

Кодування URL-адрес, екранування HTML і екранування JSON вирішують різні проблеми. Пробіл у рядку запиту не є такою ж проблемою, як символ < у відтвореному HTML або лапки в рядку JSON. Інструмент Case / Slug / Escape допомагає, зберігаючи ці виходи близько один до одного, але корисно знати, який вивід належить до пункту призначення, який ви готуєте.

Кодування URL-адрес для URL-адрес і значень запиту

Використовуйте кодування URL-адреси, коли текст надходить у компонент URL-адреси, особливо параметр запиту або значення, яке може містити пробіли, знаки пунктуації або небезпечні символи.

Припустімо, що посилання служби підтримки має містити такий пошуковий термін, як pricing & billing. Вставлення цієї фрази безпосередньо в URL-адресу може змінити спосіб інтерпретації URL-адреси, оскільки & уже має значення в рядку запиту. Кодування URL-адреси перетворює текст у форму, яка може переміщатися всередині URL-адреси, не плутаючись із синтаксисом URL-адреси.

Це відрізняється від створення slug. slug зазвичай перетворює заголовок на сегмент шляху, який можна читати, наприклад pricing-and-billing. Кодування URL-адреси зберігає початкове значення безпосередньо для транспортування.

Екранування HTML призначене для тексту, який буде відображено в HTML

Використовуйте екранування HTML, коли текст має відображатися як текст у контексті HTML, а не стати розміткою.

Якщо приклад коду містить <button> і ви хочете, щоб читачі бачили ці символи, веб-переглядачу потрібно екранувати символи. Інакше він може інтерпретувати їх як фактичний елемент. Екранування HTML – це запобігання читанню тексту як синтаксису HTML у місцях, де вміст має залишатися видимим текстом.

Це має значення в документації, полях CMS, журналах змін і копії продукту. Це особливо актуально, коли вихідний текст містить приклади розмітки, фрагменти або створені користувачем значення, які не повинні стати частиною структури сторінки.

Екранування JSON призначене для рядкових значень у JSON

Використовуйте екранування JSON, коли текст має безпечно розміститися всередині рядка JSON.

Знак лапки нешкідливий у звичайній прозі, але всередині рядка JSON він може закрити рядок раніше. Для нового рядка також може знадобитися представлення, яке зберігає дійсність JSON. Екранування JSON передбачає збереження значення, зберігаючи навколишній JSON доступним для аналізу.

Це часто з’являється, коли команди діляться прикладами API, фрагментами конфігурації, корисними навантаженнями аналітики або зразками даних. Якщо наступним кроком є ​​ширше очищення структурованих даних, поєднайте цю статтю з Як форматувати JSON перед наданням прикладу API і JSON/YAML/TOML Converter.

Виберіть екранування на основі пункту призначення

Найпростіше правило — спочатку призначення.

Пункт призначеннявикористаннячому
Значення URL-запиту або компонент URL-адресиКодування URLЗапобігає інтерпретації тексту як синтаксису URL-адреси
Видимий текст у HTMLЕкранування HTMLЗахищає спеціальні символи від розмітки
Рядкове значення в JSONЕкранування JSONЗберігає можливість аналізу лапок, похилих рисок і розривів рядків
Публічна назва статті або маршрутуSlug поколінняСтворює читабельний текст шляху, а не зберігає кожен символ

Converty допомагає, оскільки ви можете вставити один раз і порівняти результати, не відкриваючи окремий кодер для кожного випадку. Це зберігає роботу пропорційною. Ви не будуєте трубопровід; ви готуєте одне текстове значення для місця, яке йому потрібно розмістити.

Відкрийте інструмент Case / Slug / Escape, коли вам потрібно вирішити, який наступний вивід має бути slug, значення в кодуванні URL-адреси, текст, безпечний для HTML, або рядок, безпечний для JSON.

Вам також може сподобатися