Отправить HTTP 403.6 код состояния


В некоторых наших системах мы имеем блок-лист IP-адреса, который останавливает просмотр веб-сайта определенным IP-адресом. В настоящее время PHP просто выдает текст, говорящий, что ваш ip-адрес был заблокирован бла-бла-бла.

Однако

Я наткнулся на код ошибки HTTP 403, а точнее код ошибки 403.6 (http://en.wikipedia.org/wiki/HTTP_403 ), что, по-моему, было бы лучше, чем просто текст.

Но я где-то читал, что ... 6 только для windows или что-то в этом роде в этом направлении??

Могу ли я отправить заголовок 403.6 через PHP с моих серверов LAMP, и будет ли это лучшей практикой, чем просто отправка "вы заблокировали текст"?

5 4

5 ответов:

Отправьте простой 403 , поскольку это правильный код для forbidden, а затем отправьтепользовательское текстовое сообщение , чтобы ваши пользователи поняли, что происходит.

Пример кода php ниже.

<?php
header("HTTP/1.0 403 Forbidden");
?>

<h1>Access Forbidden!</h1>

You have been banned from seeing our site because xx and you will
xx etc ... 

Если определенные IP-адреса были заблокированы из-за того, что они занесены в черный список, то вполне допустимо вернуть простой статус HTTP 404 "не найден", особенно для адресов, помеченных как "вредоносные".

Не давайте им никакой информации, которую они могут использовать. Просто скажите: "Здесь нечего смотреть "вместо" здесь есть то, что вам не позволено видеть".

В любом случае всегда старайтесь предоставлять информацию на основе необходимости знать.

В соответствии с тем, как был определен HTTP, ваш сервер должен отвечать стандартным образом с помощью пользовательского кода состояния HTTP 4xx. Многие неиспользуемые коды состояния в диапазоне 4xx доступны для вашего использования.

И список уже используемых кодов состояния можно найти здесь.

Редактировать:

Вы должны использовать как код состояния, так и сообщение, но одно из них не связано с уже определенными. В качестве примера можно использовать:

455 Your access has been blocked for excessive crawling

Вы могли бы иметь .настройка файла htaccess на вашем сервере Apache для блокировки IP-адресов, которые могут включать все ваши заблокированные диапазоны IP-адресов в правиле. Сообщение об ошибке для сообщения 403 (которое отображается для заблокированных соединений )также может быть настроено с помощью.htaccess file .

Я не думаю, что есть какой-то смысл возвращать 403.6 через равнину 403, Если вы собираетесь захлопнуть дверь перед лицом пользователя.

Другой вариант, отправка 200 вместо этого с соответствующим сообщением предпочтительнее, если в интересах удобства пользователя вы хотите уведомить Пользователя о том, что произошло (возможно, предоставить некоторую контактную информацию для тех, кто считает, что они заблокированы ошибочно и т. д.).

Выбор между подходом "хлопнуть дверью" (что технически более правильно) и" дружественный " подход (который лучше для ваших человеческих пользователей) - это ваш вызов.