Как сделать так, чтобы php-скрипт отвечал только на запросы, сделанные с того же сервера? - PullRequest
1 голос
/ 25 февраля 2010

Как мне заставить мой PHP-скрипт отвечать только на запросы, если запрашивающий скрипт находится в том же домене?

** Редактировать: Доступ к файлу PHP осуществляется по запросу ajax и является прокси-сервером, поэтому я не хочу, чтобы другие напрямую запрашивали его, это возможно?

Ответы [ 3 ]

2 голосов
/ 25 февраля 2010

Вы можете использовать $_SERVER['REMOTE_ADDR'] для сравнения IP-адреса пользователя, запрашивающего страницу. Или вы можете просто сделать его сценарием командной строки, который (очевидно) требует, чтобы вы запускали его из командной строки.

редактирование:

Вы хотите запретить людям использовать этот скрипт, кроме как через AJAX? Это невозможно, так как сам AJAX выполняется клиентом, поэтому запрос начинается именно там. И всегда можно будет назвать этот сценарий в одиночку; Вы можете сделать это сложнее, но не сможете предотвратить это.

1 голос
/ 25 февраля 2010

Безопасного способа сделать это не существует. Некоторые разработчики наивно используют поле заголовка реферера HTTP, но любой, кто достаточно умен, чтобы злоупотреблять вашим интерфейсом ajax, без проблем подделает реферера.

0 голосов
/ 25 февраля 2010

Вы не должны отправлять запросы на свой собственный сервер. Вам следует include файл и выполнить функции напрямую.

...