2013-06-09 2 views
3

Я понимаю, что это может показаться странным вопрос (и я извиняюсь за вопрос, что почти сам отвечает), однако, я был обеспокоен после прочтения ответов на другие вопросы:Безопасность соединения LOCALHOST

У меня есть PHP скрипт, который хранит данные в локальной базе данных MYSQL. Некоторая часть этой информации чувствительна и шифруется с использованием функции шифрования MYSQL AES.

Я читал, что MYSQL не шифрует данные в своих соединениях. Это было упомянуто в двух последних ответах, посвященных локальным соединениям, и, следовательно, моей озабоченности.

Я всегда считал, что, поскольку данные передаются изнутри на одном компьютере, риск перехвата был равен нулю. Разве это не так? Должен ли я шифроваться в PHP перед хранением данных?

Я использую mysqli_ *

Подключение к серверу осуществляется через SSL.

В настоящее время я использую общий виртуальный сервер, хотя после завершения разработки я планирую перейти на выделенный компьютер.

Просьба, чтобы эксперт поставил мой разум в покое или сказал мне, как я должен это делать.

+0

Вы говорите: «Я читал, что MYSQL не шифрует данные в своих соединениях». Вы также говорите: «Подключение к серверу осуществляется через SSL». Если вы используете SSL, вы должны быть в порядке. – hek2mgl

+1

, если соединение между веб-сервером и сервером базы данных превышает ssl, тогда вы добры. – Orangepill

+0

Я бы сказал, что если злоумышленник уже находится внутри вашей машины и может перехватить незашифрованный трафик базы данных, он, вероятно, может перехватить все остальное, что захочет. Таким образом, беспокойство об этом может быть несколько бессмысленным. Сказав это, попробуйте http://security.stackexchange.com для некоторых реальных профессиональных мнений. – deceze

ответ

2

Как вы уже догадались, использование локальных подключений SSL не имеет смысла. Основной целью SSL является шифрование канала, чтобы предотвратить атаки типа «человек-в-середине». Но в случае локальной связи не может быть никого. При настройке я бы рекомендовал подключение через local socket и полностью обойти уровень TCP.

Теперь вернемся к вопросу.

Должен ли я шифроваться в PHP перед хранением данных?

Нет, если база данных находится на том же компьютере, что и тот, который выполняет скрипт.

Нет, если база данных удаленная, и если ссылка надежна (либо вы доверяете ссылке per se, либо ссылка защищена, например, SSL).

Да, во всех других ситуациях.

В последнем случае (ненадежная ссылка на удаленную базу данных) AES_ENCRYPT() не подходит. Процесс шифрования/дешифрования выполняется MySQL. Данные проходят незашифрованные между PHP и MySQL. Кроме того, поскольку нужно передать ключ шифрования в MySQL AES_ENCRYPT() и AES_DECRYPT(), этот ключ обычно отправляется незашифрованным вместе с остальной частью SQL-запроса.

+0

Спасибо. Соединение SSL происходит только между пользователями сайта и сервером, а не внутренним. Я достаточно успокоился! –

Смежные вопросы