4

在我们的某些系统中,我们有一个 IP 地址阻止列表,可以阻止某些 IP 访问网站。目前,PHP 只发布文本说您的 IP 地址已被阻止等等等等。

然而

我遇到了 HTTP 错误代码 403,更准确地说是错误代码 403.6(http://en.wikipedia.org/wiki/HTTP_403),我认为这比文本更好。

但我在某处读到 .6 仅适用于 Windows 或类似的东西?

我可以从我的 LAMP 服务器通过 PHP 发送 403.6 标头吗?这会比仅发送“您已被阻止的文本”更好吗?

4

5 回答 5

9

发送一个简单的 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 ... 
于 2011-04-17T23:23:53.353 回答
4

如果某些 IP 地址因为被列入黑名单而被阻止,则可以返回简单的 404“未找到”HTTP 状态,尤其是对于已标记为“恶意”的地址。

不要给他们任何他们可以使用的信息。只需说“这里没什么可看的”,而不是“这里有一些你不允许看到的东西”。

无论如何,请始终尝试在需要知道的基础上提供信息。

于 2013-10-17T14:43:38.083 回答
1

根据定义 HTTP 的方式,以真正的标准方式,您的服务器应该使用自定义的 4xx HTTP 状态代码进行响应。4xx 范围内的许多未使用状态代码可供您使用。

并且可以在此处找到已在使用的状态代码列表。

编辑:

您应该同时使用状态码和消息,但其中一种与已定义的无关。例如,您可以使用:

455 Your access has been blocked for excessive crawling
于 2011-04-17T23:12:47.920 回答
0

您可以在 Apache 服务器上设置一个 .htaccess 文件来阻止 IP 地址,该地址可以在规则中包含所有被阻止的 IP 范围。403 消息的错误消息(针对被阻止的连接显示)也可以使用 .htaccess 文件进行自定义

于 2011-04-17T23:14:57.327 回答
0

如果您要像这样在用户的脸上砰地关上门,我认为返回403.6平原没有任何意义。403

200如果出于用户友好的考虑,您想通知用户发生的事情(可能为那些认为他们被错误阻止的人提供一些联系信息等),则另一种选择是发送带有适当消息的替代信息。 .

在“关门”方法(技术上更正确)和“友好”方法(对您的人类用户更好)之间进行选择是您的决定。

于 2011-04-17T23:15:55.707 回答