Я загружаю свои файлы (pdf, doc, flv и т. Д.) В буфер и обслуживаю их для своих пользователей со сценарием. Мне нужен мой сценарий, чтобы иметь доступ к файлу, но не разрешать прямой доступ к нему. Каков наилучший способ достичь этого? Должен ли я делать что-то с моими разрешениями или блокировать каталог с .htaccess?
Самый безопасный способ – разместить файлы, которые вы хотите сохранить вне себя, вне корневого каталога в Интернете, как предположил Дэмиен. Это работает, потому что веб-сервер соответствует привилегиям локальной файловой системы, а не собственным привилегиям.
Тем не менее, существует множество хостинговых компаний, которые предоставляют вам доступ к корневому веб-сайту. Чтобы по-прежнему предотвратить HTTP-запросы к файлам, поместите их в каталог самостоятельно с файлом .htaccess, который блокирует все коммуникации. Например,
Order deny,allow Deny from all
Ваш веб-сервер и, следовательно, ваш язык на стороне сервера все равно смогут их прочитать, поскольку локальные разрешения каталога позволяют веб-серверу читать и выполнять файлы.
Приветствия.
Таким образом я запретил прямой доступ из URL-адреса в мои ini-файлы. Вставьте следующий код в файл .htaccess
на root. (нет необходимости создавать дополнительную папку)
<Files ~ "\.ini$"> Order allow,deny Deny from all </Files>
мой файл settings.ini
находится в корне, и без этого кода доступен http://www.mydomain.com/settings.ini
Являются ли файлы на том же сервере, что и PHP-скрипт? Если это так, просто сохраните файлы из корня веб-сайта и убедитесь, что ваш PHP-скрипт имеет разрешения на чтение, где бы они ни хранились.
в httpd.conf, чтобы блокировать доступ к браузерам и wget для включения файлов, особенно говорят db.inc или config.inc. Обратите внимание, что вы не можете связать типы файлов в директиве, а не создавать несколько директив файлов.
<Files ~ "\.inc$"> Order allow,deny Deny from all </Files>
для проверки конфигурации перед перезапуском apache
service httpd configtest
затем (изящный перезапуск)
service httpd graceful
Если у вас есть доступ к вам файл httpd.conf (в ubuntu он находится в каталоге / etc / apache2), вы должны добавить те же строки, что и в файл .htaccess
в конкретном каталоге. Это (например):
ServerName YOURSERVERNAMEHERE <Directory /var/www/> AllowOverride None order deny,allow Options -Indexes FollowSymLinks </Directory>
Сделайте это для каждого каталога, который вы хотите контролировать информацию, и у вас будет один файл в одном месте, чтобы управлять всем доступом. Это пример выше, я сделал это для корневого каталога, / var / www.
Этот вариант может быть недоступен с аутсорсинговым хостингом, особенно с общим хостингом. Но это лучший вариант, чем добавление многих файлов .htaccess
.