Задать вопрос
@Let_peace

Как запретить пользователю доступ к php,json файлам через .htaccess, чтобы работали ajax запросы?

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

Есть некоторые php и json файлы, которые должны быть не доступными для пользователя (переход по прямой ссылке, например, http::/site.ru/file.php ) , но в то же время они должны принимать ajax запросы от скрипта js (в частности $.post ).

Пробовал создавать отдельную папку для "недопустимых" файлов и кидать туда .htaccess:
<FilesMatch ~ "\.(php|htm|html|json)$">
  Order allow,deny
  Deny from all
</FilesMatch>

Но при обращении ajax запроса к необходимым файлам вылетала 500 ошибка.

Подскажите, пожалуйста, как правильно это реализовать именно через .htaccess?
  • Вопрос задан
  • 1082 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
inoise
@inoise Куратор тега PHP
Solution Architect, AWS Certified, Serverless
На самом деле никак. Пользователь это браузер, браузер должен через Ajax обращаться к скрипту. Ajax это по сути и есть прямой запрос. Можно поиграться с CORS, но результата будет ноль ибо он не спасет от такого.

Стоит подумать какую проблему вы пытаетесь решить этим. Что это за скрипт и почему надо его ограничить?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
.htaccess
SetEnvIfNoCase X-Requested-With XMLHttpRequest ajax
Order Deny,Allow
Deny from all
Allow from env=ajax


и закинуть это в отдельную папку типа /ajax/ вместе с теми скриптами и файлами к которым доступ разрешён только посредством XHR-запросов
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы