Экранирование строк SQL

Экранируйте текст для строки SQL в одинарных кавычках: удвоение кавычек (стандартный SQL) или обратные слэши MySQL. Можно обернуть результат в кавычки.

Каждая ' превращается в ''. Подходит для PostgreSQL, SQLite, SQL Server, Oracle и MySQL с NO_BACKSLASH_ESCAPES. В коде приложения используйте параметризованные запросы.

Вывод

Работает полностью в вашем браузере. Ваши данные никуда не загружаются.

Похожие Инструменты

Просмотреть Все

Что такое Экранирование строк SQL?

Инструмент превращает исходное текстовое значение в вид, который можно поместить в строковый литерал SQL в одинарных кавычках. Стандартный режим удваивает каждую одинарную кавычку (O'Reilly → O''Reilly); режим MySQL использует экранирование обратной косой чертой, как mysql_real_escape_string(). Он предназначен для ручного написания SQL — в коде приложений используйте параметризованные запросы.

Как пользоваться Экранирование строк SQL

  1. Выберите Способ экранирования: стандартный SQL или MySQL.
  2. При желании включите Заключить результат в одинарные кавычки.
  3. Введите или вставьте исходное значение в поле ввода.
  4. Скопируйте экранированный результат в свой SQL.

Пример

Ввод
O'Reilly \ x
Вывод
O''Reilly \ x

Режим стандартного SQL: кавычки удваиваются, обратная косая черта остаётся.

Когда использовать Экранирование строк SQL

Используйте для разовых SQL-запросов, начальных данных и скриптов миграций с текстом, содержащим апострофы. Не полагайтесь на экранирование строк как на защиту от SQL-инъекций в приложениях — используйте подготовленные запросы с привязанными параметрами. Экранирование идентификаторов (имён таблиц и столбцов) — другая задача, здесь она не рассматривается.

Как работает Экранирование строк SQL

Стандартный SQL (ANSI; PostgreSQL, SQLite, SQL Server, Oracle и MySQL с NO_BACKSLASH_ESCAPES): каждая ' превращается в ''; обратные косые черты буквальны и не меняются. Режим MySQL (настройки MySQL/MariaDB по умолчанию): \0, перевод строки, возврат каретки, обратная косая черта, ', " и Ctrl+Z (0x1A) получают перед собой обратную косую черту, как в mysql_real_escape_string(). Переносы строк в стандартном режиме остаются настоящими переносами, что допустимо внутри литералов SQL.

Распространенные Случаи Использования

  • Вставка имён вроде O'Reilly в ручной INSERT
  • Написание скриптов начальных данных и миграций с текстом в кавычках
  • Подготовка строковых литералов для дампов MySQL
  • Понимание разницы между экранированием ANSI и MySQL

Примечание по Безопасности

Экранирование не заменяет подготовленные запросы. Всё выполняется локально, ничего не отправляется на сервер.

Часто Задаваемые Вопросы

Достаточно ли экранирования для защиты от SQL-инъекций?

Нет. Используйте параметризованные запросы: экранирование подвержено ошибкам и зависит от настроек сервера и кодировки.

Какой режим выбрать для PostgreSQL?

Стандартный SQL. Начиная с PostgreSQL 9.1, обратные косые черты в обычных строках буквальны.

Почему для MySQL нужно другое экранирование?

По умолчанию MySQL считает обратную косую черту символом экранирования внутри строк, поэтому её тоже нужно экранировать.

Что сделать дальше

Проверка SSL-сертификата
Проверьте, успешно ли соединение HTTPS с сайтом, и посмотрите его новейший сертификат из журналов Certificate Transparency: издатель, срок, остаток дней, имена.
Генератор JWT
Создавайте подписанные токены JSON Web Token с алгоритмами HS, RS, PS, ES или EdDSA. Правьте полезную нагрузку, задавайте exp и iat, создавайте ключи и секреты в браузере.
Проверка подписи JWT
Проверьте подпись токена JSON Web Token секретом HMAC, открытым ключом PEM, сертификатом X.509, JWK или JWKS и локально проверьте exp, nbf, издателя и аудиторию.
Экранирование строк
Один инструмент для экранирования и обратного преобразования строк для JSON, JavaScript, HTML, XML, компонентов URL, регулярных выражений, SQL, CSS и аргументов оболочки.
SQL в JSON
Преобразуйте операторы SQL INSERT в JSON: многострочные VALUES, идентификаторы в кавычках, экранированные кавычки, NULL, TRUE/FALSE и числа, несколько таблиц. Бесплатно.
JSON в SQL
Преобразуйте JSON в операторы SQL INSERT и необязательный CREATE TABLE для MySQL, PostgreSQL, SQLite или SQL Server с правильными кавычками и экранированием. Бесплатно.

Другие категории