2008-10-19 2 views
8

У меня есть файл .ini с конфиденциальной информацией в моем приложении php wab. Я лишен доступа к нему с помощью файла .htaccess:Можно ли запретить доступ к файлу .ini в .htaccess?

<files my.ini> 
    order deny,allow 
    deny from all 
</files> 

я не имею доступа к папкам за пределами HTDOCS, поэтому я не могу переместить файл .ini из просматриваемой территории.

Является ли мое решение безопасным?

ответ

7

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

В случае использования совместного пользования это зависит от конфигурации сервера. Для получения дополнительной информации читайте: PHP Security in a shared hosting environment

Вы можете временно установить PHPShell и просмотреть файловую систему сервера, чтобы проверить, уязвим ли ваш сервер. (требуется некоторое знание командной строки)

2

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

4

Другое хорошее решение и мой личный фаворит (особенно при разработке кода, который может не оставаться под моим строгим контролем .htaccess) - это обеспечение фактического файла .ini. Благодаря доброй душе here - user notes: pd at frozen-bits dot de, что я делаю:

my.ini -> changes to my.ini.php 

my.ini.php начинается:

;<?php 
;die(); // For further security 
;/* 
    [category] 
    name="value" 

;*/ 

отлично работает! Получите доступ к файлу напрямую, и все, что вы видите, - ';' и это действительный, обрабатываемый .ini-файл. Что не нравится :)

Несколько замечаний по фактической реализации (извинения, если это считается «overshare», но, возможно, спасти кому-то какое-то время):

  1. Этот файл делает мой IDE очень расстроен и продолжает пытаться к автоматической переформатировке, которая затем делает PHP расстроен. Благословения на Notepad ++.
  2. Не забудьте закрыть ;*/. Он по-прежнему работает, если вы его не оставляете, но PHP предупреждает вас, что он вот-вот расстроится.

Сортировка.