#php #.htaccess #access-control
#php #.htaccess #управление доступом
Вопрос:
У меня есть PHP-скрипт, который должен очищать базу данных, и я не хочу, чтобы к этой базе данных был открытый доступ. Как мне сделать так, чтобы файл нельзя было просматривать как https://example.com/database.file
, но PHP-файл все равно мог его очистить.
В прошлый раз я пытался отключить доступ к файлу, но PHP-файл возвращал значение 403 каждый раз, когда я пытался получить к нему доступ.
Затем я просмотрел два вопроса на этом веб-сайте, но ни один не смог ответить на мою проблему.
Комментарии:
1. Вы думали о том, чтобы поместить информацию в базу данных, к которой пользователь не сможет получить доступ, кроме как через приложение.
2. Вам не обязательно помещать файл вашей базы данных в общедоступный каталог. Вы можете переместить его за пределы корня документа.
Ответ №1:
Вы можете установить условие перенаправления для файла в apache / nginx, чтобы запретить внешнее использование.
В Apache:
<FilesMatch "^(database.file)$">
Require all denied
</FilesMatch>
В Nginx:
location = /database.file {
deny all;
return 404;
}
Комментарии:
1. В Nginx вы бы использовали
internal
директиву
Ответ №2:
Если вы хотите, чтобы ваш файл был скрыт, ИМО, самый простой способ — перенаправить на ваш файл 404 (страница «файл не найден») путем перезаписи URL.
что-то вроде: RewriteRule "^folder/myFile.php$" "404.html" [QSA,L]
Перезапись URL не повлияет на PHP includes / requires или file_get_contents
которые имеют дело непосредственно со структурой файловой системы