Отправить HTTP 403.6 код состояния - PullRequest
4 голосов
/ 18 апреля 2011

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

HOWEVER

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

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

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

Ответы [ 5 ]

9 голосов
/ 18 апреля 2011

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

Пример 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 ... 
4 голосов
/ 17 октября 2013

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

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

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

1 голос
/ 18 апреля 2011

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

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

Edit:

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

455 Your access has been blocked for excessive crawling
0 голосов
/ 18 апреля 2011

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

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

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

0 голосов
/ 18 апреля 2011

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

...