13 лютого 2025 року вийшов PostgreSQL 17.3, у якому функції екранування даних libpq отримали повну перевірку кодування вхідних даних. Хоча пряма відправка на сервер безпечна, це оновлення усуває ризики при обробці даних через psql або інший клієнтський код, за умови узгодженості кодування між компонентами.
У цій версії функції екранування libpq отримали повну перевірку валідності кодування вхідних даних. Раніше недостатня перевірка кодування могла створювати умови для обходу механізмів екранування, що призводило до ризику SQL-ін'єкції. Це виправлення вимагає узгодженого підходу до кодування на всіх етапах передачі даних: від клієнтського коду, через psql або проміжні шари, до безпосередньої обробки сервером бази даних.
Рекомендації:
- Оновіть PostgreSQL до версії 17.3 для отримання виправлень у
libpq. - Перевірте налаштування кодування (encoding) у вашому додатку та переконайтеся, що вони збігаються з налаштуваннями бази даних.
- Проведіть аудит коду, який взаємодіє з базою даних, щоб переконатися, що дані коректно екрануються перед відправкою на сервер.
Посилення безпеки libpq через валідацію кодування
Посилення перевірки кодування в libpq є важливим кроком для захисту від SQL-ін'єкцій. Для розробників та адміністраторів баз даних це означає необхідність приведення клієнтського коду у відповідність до нових вимог безпеки. Неузгодженість кодування між клієнтом та сервером бази даних тепер може стати причиною вразливості, яку раніше було легше обійти.
Практичний крок: Оновіть PostgreSQL до версії 17.3. Зверніться до Softline для проведення аудиту вашого коду, що взаємодіє з базою даних, та перевірки налаштувань кодування, щоб гарантувати захист від SQL-ін'єкцій на всіх рівнях архітектури.
Використані джерела
- postgresql.org (postgresql.org)