Информация для входа в базу данных шифрования - PullRequest
1 голос
/ 10 мая 2011

При подключении к базе данных mySQL должна ли шифроваться информация для входа? Например, если у вас есть это:


$dbuser = "test";
$dbpass = "1234";
mysql_connect("localhost", $dbuser, $dbpass);

Может ли имя пользователя и пароль быть перехвачены злоумышленником? Если так, как вы можете зашифровать данные, чтобы этого не произошло?

Ответы [ 5 ]

1 голос
/ 10 мая 2011

Консорциум PHPSec.org имеет специальную статью по

Руководство по безопасности PHP: базы данных и SQL

, касающуюся учетных данных подключения к БД.Посмотрите на лучшие практики и так.

1 голос
/ 10 мая 2011

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

Как правило, хранение ее в файле, доступном только для записи владельцу и доступному только для чтенияПользователь веб-сервера был бы наиболее мудрым, но это незначительно, так как любой, использующий тот же веб-сервер, может прочитать файл , если сервер не имеет разделения привилегий.

Если ваш сервер MySQL поддерживает SSL, тозашифровывает связь между вашим сценарием и сервером MySQL, посмотрите mysqli :: ssl_set () для MySQLi или параметр * client_flags * mysql_connect () , если выиспользуя старые функции MySQL.

1 голос
/ 10 мая 2011

Я считаю, что все, что отправлено через небезопасно HTTP, потенциально является видимым при правильных средствах.

Уже существует решение вашей проблемы, а именно с использованием HTTPS , которое, я думаю, кодирует все, что отправлено, с использованием алгоритма RSA.

О: Если сервер mySQL находится на той же машине (если вы называете его localhost), я думаю, что это не будет проблемой. Возможно, кто-то может подтвердить / опровергнуть это .

Впрочем, не помешает использовать HTTPS, когда вы имеете дело с конфиденциальными данными , я думаю. Даже если он находится на том же сервере.

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

1 голос
/ 10 мая 2011

Если вы хотите, чтобы соединение между PHP и MySQL было защищено от перехвата, установите принудительное SSL-соединение:

mysql_connect("localhost", $dbuser, $dbpass, false, MYSQL_CLIENT_SSL);

Если ваш вопрос касается общего хостинга и того, кто читает данные конфигурации,тебе часто не везет.Вам нужен профессиональный хостер с поддержкой suxec / suphp, чтобы изменить права доступа к файлам на что-то более разумное.

0 голосов
/ 10 мая 2011

Обычно вы помещаете эту информацию в другой файл и включаете этот файл в другие ваши php-файлы с помощью оператора include. Убедитесь, что только у вас есть разрешение на чтение / запись в этот файл.

...