Отклоните ajax доступ к файлу с помощью htaccess

Существуют некоторые сценарии, которые я использую только через ajax, и я не хочу, чтобы пользователь запустил эти скрипты непосредственно от браузера. Я использую jQuery для совершения всех ajax звонков, и я сохраняю все свои ajax файлы в папке названными ajax.

Так, я надеялся создать htaccess файл, который проверяет на запрос ajax (HTTP_X_REQUESTED_WITH), и отклоните все другие просьбы в той папке. (Я знаю, что http заголовок может фальсифицироваться, но я не могу думать о лучшем решении). Я попробовал это:

% ReWriteCond {HTTP_X_REQUESTED_WITH} ^ $
% ReWriteCond {SERVER_URL} ^/ajax/.php$
ReWriteRule ^.* $ - [F]

Но, это не работает. Что я делаю неправильно? Есть ли любой другой способ достигнуть подобных результатов. (Я не хочу проверять на заголовок в каждом сценарии).

15
задан Vikash 12 August 2010 в 10:42
поделиться

1 ответ

Просто проверьте if ($ _ SERVER ['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') { в начале документа, если он не установлен, то ничего не возвращайте.

править Вот почему: http://github.com/jquery/jquery/blob/master/src/ajax.js#L370

редактировать 2 Плохо, просто прочтите свой пост еще раз. В качестве альтернативы вы можете сделать папку недоступной для Интернета, а затем просто иметь стандартный файл ajax.php с include ('./ private / scripts.php') , так как ваш сервер все равно будет иметь к нему доступ , но никто не сможет просматривать их из своего браузера.

0
ответ дан 1 December 2019 в 00:49
поделиться
Другие вопросы по тегам:

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