发送HTTP 403.6状态代码

时间:2011-04-17 23:05:18

标签: php http-status-codes http-status-code-403

在我们的一些系统中,我们有一个IP地址阻止列表,可以阻止某些IP查看网站。目前,PHP只是发出文字说你的IP地址已被阻止等等等等。

无论其

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

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

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

5 个答案:

答案 0 :(得分: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 ... 

答案 1 :(得分:4)

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

不要向他们提供他们可以使用的任何信息。只要说'这里没什么可看的'而不是'这里是你不被允许看的东西'。

在任何情况下,始终尝试提供有关需要的信息。

答案 2 :(得分:1)

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

可以找到已使用状态代码列表here

修改

您应该同时使用状态代码和消息,但是与已定义的状态代码和消息无关。作为示例,您可以使用:

455 Your access has been blocked for excessive crawling

答案 3 :(得分:0)

您可以在Apache服务器上设置.htaccess文件,以阻止IP地址,其中包括规则中所有被阻止的IP范围。 403消息的错误消息(显示为已阻止的连接)也可以是customized with the .htaccess file

答案 4 :(得分:0)

我不认为如果你打算在用户的脸上砰地一声关上403.6 403,那么就没有任何意义。

另一个选项是,如果为了用户友好性,您希望通知用户已发生的事情(可能会为那些提供某些联系信息的用户提供一些联系信息),最好使用适当的消息发送200。相信他们被错误地封锁等等。

选择“猛击门”方法(技术上更正确)和“友好”方法(对于人类用户更好)是您的电话。