PEAR: параметры подключения к БД - PullRequest
0 голосов
/ 29 апреля 2010

Я только что закончил свой первый сайт PHP, и теперь у меня есть вопрос, связанный с безопасностью. Я использовал PEAR: DB для соединения с базой данных и сделал для него отдельный файл параметров. Как мне скрыть этот файл параметров?

Я нашел руководство (http://www.kitebird.com/articles/peardb.html), которое гласит:

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

Теперь я поместил свой файл в каталог, подобный этому /include/db_parameters.inc

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

Из того, что я понял, я должен защитить этот файл так, чтобы хотя PHP и служил текстом, никто не мог его прочитать.

Что здесь означает вне дерева документов веб-сервера? Поместить файл PHP из каталога public_html вглубь файловой системы сервера? Какой-нибудь CHMOD?

Ответы [ 3 ]

1 голос
/ 29 апреля 2010

/include/db_parameters.inc в этом случае - URI, соответствующий реальному пути, подобному /var/www/include/db_parameters.inc Часть перед / include является корнем документа.PHP хранит текущий корень документа в $_SERVER['DOCUMENT_ROOT']

. В этом случае вне корня документа будет файл в каталоге, отличном от указанного выше.

0 голосов
/ 29 апреля 2010

За пределами дерева документа означает, что файл не должен находиться в корне документа или в любой подпапке корня документа. Вы можете настроить правило в файле .htaccess, чтобы запретить доступ к db_parameters.inc и оставить его внутри дерева документов, но, вероятно, это упражнение лучше оставить на другой день.

0 голосов
/ 29 апреля 2010

Вы можете попробовать /include/db_parameters.inc.php также включить в этот каталог пустой файл index.php / html, чтобы никто не смог увидеть, что содержится в каталоге.

...