Шифрування сховища бази даних

Ви можете встановити з'єднання через SSL для шифрування зв'язку клієнт/сервер для підвищення безпеки, або ви можете використовувати ssh для шифрування з'єднання між клієнтами і сервером бази даних. Якщо будь-який з них використовується, моніторинг вашого трафіку і отримання інформації про вашу базу даних буде важким для потенційного зловмисника.

У випадку, якщо зломщик отримав безпосередній доступ до БД (в обхід веб-сервера), він може отримати дані, що цікавлять, або порушити їх цілісність, якщо інформація не захищена на рівні самої БД. Шифрування даних - хороший спосіб запобігти такій ситуації, але лише незначна кількість БД надають таку можливість.

Найпростіше вирішення цієї проблеми - встановити спочатку звичайний програмний пакет для шифрування даних, а потім використовувати його у ваших PHP-скриптів. PHP може вам допомогти з цим завданням за допомогою таких модулів як OpenSSL і Sodium, що реалізують досить велику кількість алгоритмів шифрування. При такому підході скрипт спочатку шифрує дані, що зберігаються, а потім дешифрує їх при запиті. Нижче наведено приклади того, як працює шифрування даних у PHP-скриптах.

Хешування

У разі роботи із прихованими службовими даними, якщо не потрібне їхнє нешифроване подання (тобто його не потрібно показувати), то, як наслідок, можна використовувати хешування. Добре відомий приклад хешування - зберігання криптографічного хешу від пароля БД, замість зберігання оригінального значення.

Функцияpassword дозволяє зручно хешувати конфіденційні дані та працювати з цими хешами.

password_hash() дозволяє хешувати заданий рядок найсильнішим з доступних алгоритмом і password_verify() перевіряє, що заданий пароль збігається зі збереженим у БД хешем.

Приклад #1 Хешування полів із паролями

Loading...