Митигация SQL-инъекций при работе с PostgreSQL
Привет, Хабр! Меня зовут Игорь, я занимаюсь разработкой серверной части в команде RuBackup.
В процессе своей работы мы с коллегами уделяем большое внимание вопросам безопасности наших приложений. SQL-инъекция — одна из самых серьезных угроз этой безопасности. Она заняла третье место в списке 25 самых опасных проблем в программном обеспечении за последние два года. Именно поэтому я решил собрать весь свой накопленный опыт и рассказать о митигации SQL-инъекций.
Наверняка многие из вас знают, что валидирование пользовательского ввода — краеугольный камень процесса безопасной разработки. С одной стороны, нам как разработчикам не хочется ограничивать пользователей в наборе таких входных данных, как символы и выражения, которые они могут использовать в работе, например, в паролях. С другой стороны, нельзя допустить выполнения в СУБД вредоносного кода, который приводит к SQL-инъекциям. А такие случаи время от времени происходят и становятся достоянием гласности. PostgreSQL дает разработчику возможность решить эту проблему экранированием потенциально опасных символов, превращая их в безопасные. Таким образом, для PostgreSQL будет вполне безвредно, если пользователь в качестве пароля использует строку "password' OR 1=1".
Для защиты от SQL-инъекций в прикладных библиотеках PostgreSQL libpq и libpqxx применяется техника «эскейпинг» или экранирование строки. Она заключается в том, чтобы убрать лишние символы разрыва строк в строках, содержащих специальные символы. С помощью этой функций символы удваиваются и более не считаются окончанием строки, а интерпретируются как обычные символы. Я буду рассматривать только библиотеку libpqxx, так как она, по сути, является С++ оберткой над более низкоуровневой С библиотекой libpq, где и реализованы все функции, о которых далее пойдет речь.
Читать далееИсточник: Хабрахабр
Похожие новости
- Пентест на автопилоте: что доверить роботам, а что — нет?
- Ботнеты растут, стратегия DDoS — меняется? Аналитический отчет за первое полугодие 2025
- VI Форум «Мой бизнес» в Архангельске: предприниматели, эксперты и представители власти обсудят рост в новых условиях
- Утечка хендлов в IP Helper API: как мы нашли и обошли ещё один баг Windows
- Тайна замочной скважины — зачем ПК запирали на ключ
- [Перевод] Как ИБ-специалисты могут превратить шумиху в новые возможности
- Как настроить работу с ПД на сайте клиники: база и тонкости
- Политики безопасности k8s gatekeeper OPA. Интеграция с GO
- Почему фаундер — лучший маркетолог: история провалов и роста B2B-продукта
- От раздражения к лояльности: как UX влияет на бизнес-показатели