Митигация SQL-инъекций при работе с PostgreSQL
Привет, Хабр! Меня зовут Игорь, я занимаюсь разработкой серверной части в команде RuBackup.
В процессе своей работы мы с коллегами уделяем большое внимание вопросам безопасности наших приложений. SQL-инъекция — одна из самых серьезных угроз этой безопасности. Она заняла третье место в списке 25 самых опасных проблем в программном обеспечении за последние два года. Именно поэтому я решил собрать весь свой накопленный опыт и рассказать о митигации SQL-инъекций.
Наверняка многие из вас знают, что валидирование пользовательского ввода — краеугольный камень процесса безопасной разработки. С одной стороны, нам как разработчикам не хочется ограничивать пользователей в наборе таких входных данных, как символы и выражения, которые они могут использовать в работе, например, в паролях. С другой стороны, нельзя допустить выполнения в СУБД вредоносного кода, который приводит к SQL-инъекциям. А такие случаи время от времени происходят и становятся достоянием гласности. PostgreSQL дает разработчику возможность решить эту проблему экранированием потенциально опасных символов, превращая их в безопасные. Таким образом, для PostgreSQL будет вполне безвредно, если пользователь в качестве пароля использует строку "password' OR 1=1".
Для защиты от SQL-инъекций в прикладных библиотеках PostgreSQL libpq и libpqxx применяется техника «эскейпинг» или экранирование строки. Она заключается в том, чтобы убрать лишние символы разрыва строк в строках, содержащих специальные символы. С помощью этой функций символы удваиваются и более не считаются окончанием строки, а интерпретируются как обычные символы. Я буду рассматривать только библиотеку libpqxx, так как она, по сути, является С++ оберткой над более низкоуровневой С библиотекой libpq, где и реализованы все функции, о которых далее пойдет речь.
Читать далееИсточник: Хабрахабр
Похожие новости
- До 80% Telegram-рекламы в недвижимости не работает
- Бесплатный вебинар «Конкурсы в соцсетях ритейлеров: как не обесценить бренд и повысить эффективность»
- Топ российских мессенджеров для работы в команде. Чем заменить WhatsApp и Telegram
- От хаоса к порядку: как ML помогает искать и защищать конфиденциальную информацию
- Форки Firefox. Поднимаем собственный сервер синхронизации
- Реалити от Сетки: блогеры собирают команду мечты
- VK AdBlogger научит бизнес актуальным стратегиям инфлюенс-маркетинга
- Коммуникационная стратегия 2025: настраиваемся на потребителя
- Больше трети офисных сотрудников не отдыхают из-за отсутствия компании
- Zero Trust в облаке: практическое руководство