Как сделать папку на сервере безопасной?

Я создаю веб-сайт на своем локальном компьютере и не имею системы базы данных.

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

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

Когда я пишу «localhost/mysite/hits/», я могу получить доступ ко всем текстовым файлам и информации. Я хотел бы предотвратить это, чтобы люди не могли видеть это, когда я публикую сайт

Как я могу это сделать?

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


person robin00212    schedule 22.05.2014    source источник
comment
Код вы пробовали? Поделиться будешь?   -  person Jay Blanchard    schedule 22.05.2014
comment
Вы заново изобретаете колесо. Плохой способ. Почему вы не используете Analytics или один из анализаторов логов?   -  person Marcin Orlowski    schedule 22.05.2014
comment
@JayBlanchard Я еще ничего не пробовал, просто думал минут 30.   -  person robin00212    schedule 22.05.2014
comment
@MarcinOrlowski, я уже закончил со счетчиком посещений, мне просто нужно знать, как запретить людям доступ к файлам.   -  person robin00212    schedule 22.05.2014
comment
Посмотрите на файл .htaccess   -  person mcamier    schedule 22.05.2014


Ответы (2)


Это зависит от вашего веб-сервера

Апач:

Вам нужно вставить в директорию файл .htaccess с содержимым deny from all

https://stackoverflow.com/a/9282193/2441442

ИИС:

Вам нужен файл web.config для настройки фильтрации запросов:

<configuration>
   <system.webServer>
       <security>
          <requestFiltering>
               <hiddenSegments>
                   <add segment="My_Directory" />
               </hiddenSegments>
           </requestFiltering>
       </security>
   </system.webServer>
</configuration>

https://stackoverflow.com/a/4038572/2441442

Nginx:

Вы пишете в своей конфигурации:

location ~ /(dir1|dir2|dir3) {
   deny all;
   return 404;
}

Из-за фона Nginx (Performance) вам необходимо перезагрузить сервер. Конфиг загружается только один раз.

https://serverfault.com/a/232706/220399

Для всех остальных

http://bit.ly/1ktwZHG

person Christian Gollhardt    schedule 22.05.2014
comment
@JayBlanchard, я улучшил свой ответ. - person Christian Gollhardt; 22.05.2014
comment
Спасибо за помощь, отлично получилось :) Приму ваш ответ, как только смогу. - person robin00212; 22.05.2014

Вы можете попробовать создать файл .htaccess в папке и запретить все в сценарии .htaccess.

person Code    schedule 22.05.2014