Как запретить прямой доступ к файлам в каталоге AJAX

У меня есть несколько страниц, которые вызывают контент через jQuery .ajax. Я не хочу, чтобы содержимое было видимым на странице, поэтому я пошел с .ajax и не показывал / скрывал содержимое. Я хочу защитить файлы внутри каталога AJAX от прямого доступа через URL-адрес браузера. Я знаю, что заголовки PHP могут быть подделаны и не знают, лучше ли использовать ключ доступа или попробовать сделать это через htaccess.

Мой вопрос в том, что является более надежным методом? Пользователь не зарегистрировал / не зарегистрировал статус пользователя, и основные страницы должны иметь возможность извлекать контент со страниц в каталогах AJAX.

спасибо

Сделайте временную временную переменную сеанса. Перед повторением данных проверьте переменную в выходном файле php.

ИЛИ, если вы не хотите использовать сеансы .. сделайте следующее:

$ key = base64encode (time (). 'abcd');

в файле read: base64decode взорвался abcd, прочитав время. Разрешить 5-секундный буфер. Если время падает в течение 5 секунд после запроса с печатью. Вы законны.

Чтобы сделать его более безопасным, вы можете изменить свой механизм шифрования / дешифрования.

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

Ваш сервер никогда не сможет отличить «настоящий» запрос Ajax от «поддельного», так как каждый аспект запроса может быть подделан на стороне клиента. Злоумышленнику просто нужно будет изучить фильтр пакетов, чтобы узнать, что делает ваша страница. Тривиально повторять запросы.

Любое решение, которое вы разработали, ничего не сделает, кроме как ложное чувство безопасности. Если у вас есть данные, которые необходимо хранить в секрете, вам нужно будет использовать более эффективную защиту, такую ​​как аутентификация.

Почему бы не иметь содержимое вне каталога веб-сервера, а затем иметь скрипт php, который может проверить, должен ли человек его увидеть, а затем отправить его им.

Итак, у вас есть getcontent.php , и вы можете посмотреть на файл cookie или токен, который был указан на странице javascript, и он использует для выполнения запроса, а затем он будет просто извлекать реальный контент, устанавливать типы и поток mime это пользователю.

Таким образом, вы можете изменить свою логику относительно того, кто должен иметь доступ, без изменения какой-либо из остальных ваших приложений.

Нет никакой реальной разницы с тем, что http://img.ruphp.com/php/myimage.gif и http://someorg.net/myscript.php?token=887799&img_id=ddtw88 в браузере, но, очевидно, ему нужно будет работать с GET так требуется ограниченное по времени значение, так как пользователь может увидеть его повторное использование.