Как мне защитить жестко запрограммированный логин / пароль в PHP? - PullRequest
7 голосов
/ 05 сентября 2010

Я пишу простой PHP-скрипт для доступа к API Foursquare. PHP всегда будет иметь доступ к одной и той же учетной записи Foursquare. В настоящее время эта информация для входа в систему жестко запрограммирована в моем скрипте. Каков наилучший способ защиты этой информации?

Если я последую совету из этой ветки, я должен просто поместить информацию для входа в конфигурационный файл вне корневого каталога сайта: Как защитить пароли базы данных в PHP?

Это лучший совет? Или есть лучший способ защитить информацию для входа?

Ответы [ 3 ]

11 голосов
/ 05 сентября 2010

Конечно, лучшим способом было бы вообще не хранить его.

Если вы не можете этого сделать, хранение его в файле PHP (в качестве переменных) должно гарантировать, что оно не будетотправлено на клиентскую сторону.Если вы действительно параноидально относитесь к тому, что ваш веб-сервер внезапно перестал интерпретировать PHP, вы можете поместить его в отдельный файл, вне корня документа или там, где доступ запрещен (например, с помощью директивы .htaccess).

4 голосов
/ 05 сентября 2010

(Здесь есть подробные сведения о linux, поэтому, пожалуйста, простите их, если это не ваша платформа ...)

Если вы работаете на Apache и имеете доступ к файлам конфигурации (которые могут бытьв случае с виртуальным хостингом), вы можете поместить такую ​​строку в конфигурацию VirtualHost (или httpd.conf, или другой включенный файл конфигурации):

SetEnv FOURSQUARE_PW "your password"

Тогда ваши php-скрипты могут получить к нему доступ $_SERVER['FOURSQUARE_PW'].

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

0 голосов
/ 05 сентября 2010

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

...