2013-04-07 6 views
1

У меня проблема, когда веб-хостинговая компания отправляет только заголовки запросов на сервер, которые затем пытаются быть «добрыми» и обрабатывать их ... запрашивать данные;Проверка пустого запроса PHP

10.252.237.56 - - [29/Mar/2013:15:25:48 +1100] "HEAD/HTTP/1.1" 200 942 

Как это обнаружить в PHP, и остановка передается пользовательской стороне вещей.

Ларри

+0

Возможный дубликат http://stackoverflow.com/questions/1538065/find-out-http-method-in-php – elslooo

ответ

2
$_SERVER['REQUEST_METHOD'] 

Вы можете сравнить это «голова», очевидно, и остановить свой сценарий, когда они равны.

Однако, я думаю, что единственной причиной, по которой вы должны это хотеть, является производительность (хотя я не думаю, что эти запросы генерируют любую нагрузку вообще). С точки зрения безопасности, запросы HEAD не должны наносить вреда вашему приложению. Вы должны использовать аутентификацию, сеансы и т. Д., Чтобы проверить подлинность запроса. Отключение вашей веб-хостинга от отправки этих запросов не помешает другим пользователям звонить простой GET / (или PUT или какой-либо другой метод, который не реализован).

+0

Если вы хотите блокировать только головные запросы с вашего веб-хостинга, вы также можете сравнить IP-адреса, конечно , – elslooo

+0

Невозможно выбрать по ip-адресу, поскольку все позади балансиров нагрузки, которые используют тот же ip, что и реальные запросы. Да, мы делаем сеанс, но проблема в том, что пустой запрос выглядит как новый сеанс, поэтому он заставляет его создавать. Они делают эти опросы несколько раз в секунду, поэтому, чтобы «видеть» это опрос и игнорировать, это было бы очень полезно. – Larry

+0

В зависимости от платформы, на которой вы строите, вы можете настроить свою проверку работоспособности, чтобы искать другой URL (например, '/ health'). Или вы можете проверить заголовки 'X-Forwarded-For'. – elslooo

Смежные вопросы