Екранування й деекранування рядків
Екрануйте або деекрануйте рядок для JSON, JavaScript, шаблонних літералів, SQL, CSV, атрибутів HTML, регулярних виразів і URL просто у браузері.
Екранування не замінює параметризовані запити (підготовлені оператори). Використовуйте цей результат, щоб читати чи налагоджувати SQL, але ніколи не будуйте запити з введених користувачем даних.
Як екранувати чи деекранувати рядок
- Виберіть ціль у полі Формат: рядок JSON, рядок JavaScript, шаблонний літерал JavaScript, рядковий літерал SQL, поле CSV, значення атрибута HTML, регулярний вираз або компонент URL.
- Введіть або вставте текст у поле вводу.
- Натисніть Екранувати, щоб перетворити звичайний текст на безпечний літерал, або Деекранувати, щоб повернути літерал до звичайного тексту. Результат оновлюється під час введення в напрямку, який ви вибрали останнім.
- Налаштуйте параметри, показані для формату: Додати лапки навколо, Екранувати символи не з ASCII або Пробіли як + (дані форми).
- Натисніть Копіювати або Результат як вхідні дані, щоб змінити операцію на зворотну й перевірити круговий цикл.
Кількість символів до й після показано під кнопками. Усе виконується у вашому браузері; нічого не завантажується на сервер.
Що робить кожен формат
- Рядок JSON: екранує
",\і керівні символи (\n,\t,\u0000…), точно якJSON.stringify. З параметром Екранувати символи не з ASCII кожен символ вище за U+007E стає\uXXXX(емодзі стають сурогатною парою на кшталт😀). Деекранування приймає текст із подвійними лапками й без них і терпимо ставиться до «сирих» розривів рядків. - Рядок JavaScript (‘…’): екранує зворотний скісний, одинарну лапку, розриви рядків і керівні символи, а також U+2028 та U+2029, які ламають старіші рушії. Деекранування розуміє
\x41,A,\u{1F600}, застарілі вісімкові екранування на кшталт\101і продовження рядків. - Шаблонний літерал JavaScript (`…`): екранує зворотні лапки, зворотні скісні й
${, щоб жоден вираз не обчислювався; розриви рядків і табуляції лишаються як є, бо шаблонні літерали це дозволяють. - Рядковий літерал SQL (‘…’): подвоює одинарні лапки (
O'Brien→'O''Brien'), як у стандартному SQL. Деекранування відхиляє лапку, яку не подвоєно. Зворотні скісні не чіпаються: MySQL у режимі за замовчуванням також трактує\як символ екранування, тому перевірте правила своєї бази даних. - Поле CSV (RFC 4180): бере поле в подвійні лапки й подвоює внутрішні лапки, якщо воно містить кому, крапку з комою, табуляцію, лапку, розрив рядка або пробіл на початку чи в кінці. Додати лапки навколо примусово ставить лапки.
- Значення атрибута HTML: замінює
&,<,>,"і'на сутності, що безпечно як в одинарних, так і в подвійних лапках атрибутів. Деекранування декодує числові посилання та&,<,>,",'і . - Регулярний вираз (літеральний текст): екранує зворотним скісним
. * + ? ^ $ { } ( ) | [ ] \ /, а також розриви рядків і табуляції, щоб шаблон збігався з текстом буквально. Результат коректний як із прапорцемu, так і без нього. - Компонент URL (відсоткове кодування): працює як
encodeURIComponent, кодуючи все, крім літер, цифр і- _ . ! ~ * ' ( ), байтами UTF-8. Пробіли як + (дані форми) застосовує угодуapplication/x-www-form-urlencoded.
Екранування – не межа безпеки для SQL
Коли ви вибираєте SQL, інструмент показує нагадування, і його варто повторити: справжній захист від SQL-ін’єкцій – це параметризований запит (підготовлений оператор), у якому значення надсилається окремо від тексту SQL. Екранування вручну крихке: воно залежить від бази даних, кодування з’єднання та налаштувань, як-от обробка зворотних скісних у MySQL. Використовуйте цей результат, щоб читати журнали, писати тестові дані чи налагоджувати запит, але ніколи не будуйте запити з введених користувачем даних.
Для CSV інструмент також попереджає, коли значення починається з =, +, - чи @: електронна таблиця може виконати його як формулу (CSV-ін’єкція). Лапки цьому не запобігають; звичайне пом’якшення – додати перед значенням апостроф або пробіл.
Поширені запитання
Чим рядок JSON відрізняється від рядка JavaScript?
JSON дозволяє лише подвійні лапки та невеликий набір екранувань (\" \\ \/ \b \f \n \r \t \uXXXX). JavaScript приймає також одинарні лапки, зворотні лапки, \x41, \u{…}, \v і \0. Коректні екранування JSON коректні й у JavaScript, але не навпаки.
Чому деекранування завершується помилкою «недійсна escape-послідовність»?
Текст містить зворотний скісний, за яким іде щось недозволене для цього формату, наприклад \u12 із менш ніж чотирма шістнадцятковими цифрами або одинокий зворотний скісний наприкінці. Повідомлення про помилку показує проблемну послідовність.
Чи потрібні лапки навколо кожного поля CSV?
Ні. RFC 4180 вимагає лапок лише тоді, коли поле містить кому, подвійну лапку чи розрив рядка. Цей інструмент також бере в лапки крапки з комою, табуляції та пробіли на початку чи в кінці, бо багато електронних таблиць використовують їх як роздільники або обрізають.
Чи достатньо екранування атрибута HTML для захисту від XSS?
Воно правильне для тексту всередині значення атрибута в лапках. Його недостатньо для атрибутів, які самі є кодом чи URL, як-от onclick або href="javascript:…"; їх треба перевіряти, а не лише екранувати.
Чи надсилається мій текст на сервер?
Ні. Усі перетворення виконуються локально у вашому браузері, тож можна безпечно вставляти значення конфігурації чи дані, якими ви не ділилися б.
Схожі інструменти
- Кодування й декодування URL Безкоштовний кодувальник і декодувальник URL. Кодуйте параметри запиту чи повні URL, декодуйте послідовності %XX і обробляйте + як пробіл. Працює в браузері.
- Кодер і декодер HTML-сутностей Екрануйте спеціальні символи як HTML-сутності (іменовані, десяткові чи hex) або декодуйте будь-яку сутність за повним списком із 2 231 посилання HTML5.
- Форматувальник і валідатор JSON Безкоштовний форматувальник і валідатор JSON: форматує, мінімізує та перевіряє JSON у браузері й показує помилки синтаксису з рядком і стовпцем.
- Тестер регулярних виразів Перевіряйте регулярні вирази JavaScript наживо: підсвічені збіги, групи захоплення, заміна та просте пояснення кожного токена шаблону.