一、403 forbidden是什么意思?
403 Forbidden是HTTP协议中的一个状态码(Status Code)。可以简单的理解为没有权限访问此站。该状态表示服务器理解了本次请求但是拒绝执行该任务,该请求不该重发给服务器。在HTTP请求的方法不是“HEAD”,并且服务器想让客户端知道为什么没有权限的情况下,服务器应该在返回的信息中描述拒绝的理由。在服务器不想提供任何反馈信息的情况下,服务器可以用404 Not Found代替403 Forbidden。
二、403错误代码的分类介绍
403.1
403.1错误是由于"执行"访问被禁止而造成的,若试图从目录中执行CGI、ISAPI或其他可执行程序,但该目录不允许执行程序时便会出现此种错误。
403.2
403.2错误是由于"读取"访问被禁止而造成的。导致此错误是由于没有可用的默认网页并且没有对目录启用目录浏览,或者要显示的HTML网页所驻留的目录仅标记为"可执行"或"脚本"权限。
403.3
403.3错误是由于"写入"访问被禁止而造成的,当试图将文件上载到目录或在目录中修改文件,但该目录不允许"写"访问时就会出现此种错误。
403.4
403.4错误是由于要求SSL而造成的,您必须在要查看的网页的地址中使用"https"。
403.5
403.5错误是由于要求使用128位加密算法的Web浏览器而造成的,如果您的浏览器不支持128位加密算法就会出现这个错误,您可以连接微软网站进行浏览器升级。
403.6
403.6错误是由于IP地址被拒绝而造成的。如果服务器中有不能访问该站点的IP地址列表,并且您使用的IP地址在该列表中时您就会返回这条错误信息。
403.7
403.7错误是因为要求客户证书,当需要访问的资源要求浏览器拥有服务器能够识别的安全套接字层(SSL) 客户证书时会返回此种错误。
403.8
403.8错误是由于禁止站点访问而造成的,若服务器中有不能访问该站点的DNS名称列表,而您使用的DNS名称在列表中时就会返回此种信息。请注意区别403.6与403.8错误。
403.9
403.9错误是由于连接的用户过多而造成的,由于Web服务器很忙,因通讯量过多而无法处理请求时便会返回这条错误。
403.10
403.10错误是由于无效配置而导致的错误,当您试图从目录中执行CGI、ISAPI或其他可执行程序,但该目录不允许执行程序时便会返回这条错误。
403.11
403.11错误是由于密码更改而导致无权查看页面。
403.12
403.12错误是由于映射器拒绝访问而造成的。若要查看的网页要求使用有效的客户证书,而您的客户证书映射没有权限访问该Web站点时就会返回映射器拒绝访问的错误。
403.13
403.13错误是由于需要查看的网页要求使用有效的客户证书而使用的客户证书已经被吊销,或者无法确定证书是否已吊销造成的。
403.14
403.14错误Web 服务器被配置为不列出此目录的内容,拒绝目录列表。
403.15
403.15错误是由于客户访问许可过多而造成的,当服务器超出其客户访问许可限制时会返回此条错误。
403.16
403.16错误是由于客户证书不可信或者无效而造成的。
403.17
403.17错误是由于客户证书已经到期或者尚未生效而造成的。
三、导致403错误的主要原因
1、你的IP被列入黑名单。
2、你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了。
3、网站域名解析到了空间,但空间未绑定此域名。
4、你的网页脚本文件在当前目录下没有执行权限。
5、在不允许写/创建文件的目录中执行了创建/写文件操作。
6、以http方式访问需要ssl连接的网址。
7、浏览器不支持SSL 128时访问SSL 128的连接。
8、在身份验证的过程中输入了错误的密码。
9、DNS解析错误,手动更改DNS服务器地址。
10、连接的用户过多,可以过后再试。
11、服务器繁忙,同一IP地址发送请求过多,遭到服务器智能屏蔽。
四、解决403 forbidden错误的方法
1、重建dns缓存
对于一些常规的403 forbidden错误,马海祥建议大家首先要尝试的就是重建dns缓存,在运行中输入cmd,然后输入ipconfig /flushdns即可。如果不行的话,就需要在hosts文件里把主页解析一下了。
2、修改文件夹安全属性
用以下命令修改文件夹安全属性
chcon -R -t httpd_user_content_t public_html/
所用命令解析:
ls -Z -d public_html/
#显示文件/目录的安全语境-Z, --context
Display security context so it fits on most displays. Displays only mode, user, group, security context and file name.-d, --directory
list directory entries instead of contents, and do not dereference symbolic links
chcon -R -t httpd_user_content_t public_html/
#修改文件/目录的安全语境-R, --recursive
change files and directories recursively-t, --type
set type TYPE in the target security context
3、关于apache导致的403 forbidden错误的解决办法
打开apache的配置文件httpd.conf,找到这段代码:
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
有时候由于配置了php后,这里的“Deny from all”已经拒绝了一切连接。把该行改成“allow from all”,修改后的代码如下,问题解决。
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
之所以会出现错误,是因为大多数的国外主机在配置Apache的时候启用了mod_security,也就是开启了安全检查,如果提交的信息中包含select , % , bin等关键字,Apache就会禁止,并给出403,404,500等错误。
4、关于HawkHost空间出现403 Forbidden错误的解决方法
有的时候在共享服务器上安装了Mod security,当网址包含有“%”号等其它敏感字符时,就会被Mod security阻止,马海祥博客曾经也出现过此情况。
解决HawkHost 403 Forbidden 错误的方法:
在.htaccess文件里添加如下代码:
SecFilterEngine Off
SecFilterScanPOST Off
直接放在网站的根目录或者程序运行的目录下。
5、关于WordPress导致的403 Forbidden错误解决方法
对于一些使用WordPress管理程序搭建的博客来说,就需要修改.htaccess文件,在后面添加上如下内容即可,其实就是disable mod_security
SecFilterEngine Off
SecFilterScanPOST Off
另外dedecms的可能还需要再加一条,以让默认访问的是index.html文件的DirectoryIndex index.html。
修改.htaccess文件,将文件上传之后,再重新打开之前出现403 Forbidden的URL就没有再出现错误,直接可以打开了。
HTTP 错误 403
403.1 禁止:禁止执行访问
如果从并不允许执行程序的目录中执行 CGI、ISAPI或其他执行程序就可能引起此错误。
如果问题依然存在,请与 Web 服务器的管理员联系。
403.2 禁止:禁止读取访问
如果没有可用的默认网页或未启用此目录的目录浏览,或者试图显示驻留在只标记为执行或脚本权限的目录中的HTML 页时就会导致此错误。
如果问题依然存在,请与 Web 服务器的管理员联系。
403.3 禁止:禁止写访问
如果试图上载或修改不允许写访问的目录中的文件,就会导致此问题。
如果问题依然存在,请与 Web服务器的管理员联系。
403.4 禁止:需要 SSL
此错误表明试图访问的网页受安全套接字层(SSL)的保护。要查看,必须在试图访问的地址前输入https:// 以启用 SSL。
如果问题依然存在,请与 Web服务器的管理员联系。
403.5 禁止:需要 SSL 128
此错误消息表明您试图访问的资源受 128位的安全套接字层(SSL)保护。要查看此资源,需要有支持此SSL 层的浏览器。
请确认浏览器是否支持 128 位 SSL安全性。如果支持,就与 Web服务器的管理员联系,并报告问题。
403.6 禁止:拒绝 IP 地址
如果服务器含有不允许访问此站点的 IP地址列表,并且您正使用的 IP地址在此列表中,就会导致此问题。
如果问题依然存在,请与 Web服务器的管理员联系。
403.7 禁止:需要用户证书
当试图访问的资源要求浏览器具有服务器可识别的用户安全套接字层(SSL)证书时就会导致此问题。可用来验证您是否为此资源的合法用户。
请与 Web服务器的管理员联系以获取有效的用户证书。
403.8 禁止:禁止站点访问
如果 Web服务器不为请求提供服务,或您没有连接到此站点的权限时,就会导致此问题。
请与 Web 服务器的管理员联系。
403.9 禁止访问:所连接的用户太多
如果 Web太忙并且由于流量过大而无法处理您的请求时就会导致此问题。请稍后再次连接。
如果问题依然存在,请与 Web 服务器的管理员联系。
403.10 禁止访问:配置无效
此时 Web 服务器的配置存在问题。
如果问题依然存在,请与 Web服务器的管理员联系。
403.11 禁止访问:密码已更改
在身份验证的过程中如果用户输入错误的密码,就会导致此错误。请刷新网页并重试。
如果问题依然存在,请与 Web服务器的管理员联系。
403.12 禁止访问:映射程序拒绝访问
拒绝用户证书试图访问此 Web 站点。
请与站点管理员联系以建立用户证书权限。如果必要,也可以更改用户证书并重试。
403 Forbidden是 HTTP协议中的一个状态码(Status Code),可以简单理解为没有权限访问此站。该状态表示服务器理解了本次请求但是拒绝执行该任务,该请求不该重发给服务器。在HTTP请求的方法不是“HEAD”,并且服务器想让客户端知道为什么没有权限的情况下,服务器应该在返回的信息中描述拒绝的理由。在服务器不想提供任何反馈信息的情况下,服务器可以用404 Not Found代替403 Forbidden。
那么HTTP 403 – 禁止访问细分的话,又分以下这些情况:
HTTP 403 – 对Internet服务管理器(HTML)的访问仅限于Localhost
HTTP 403.1 – 禁止访问:禁止可执行访问
HTTP 403.2 – 禁止访问:禁止读访问
HTTP 403.3 – 禁止访问:禁止写访问
HTTP 403.4 – 禁止访问:要求SSL
HTTP 403.5 – 禁止访问:要求SSL 128
HTTP 403.6 – 禁止访问:IP地址被拒绝
HTTP 403.7 – 禁止访问:要求客户证书
HTTP 403.8 – 禁止访问:禁止站点访问
HTTP 403.9 – 禁止访问:连接的用户过多
HTTP 403.10 –禁止访问:无效配置
HTTP 403.11 –禁止访问:密码已更改
HTTP 403.12 –禁止访问:映射器拒绝访问
HTTP 403.13 –禁止访问:使用的客户证书已被吊销
HTTP 403.15 –禁止访问:客户访问许可过多
HTTP 403.16 – 禁止访问:客户证书不可信或者无效
HTTP 403.17 – 禁止访问:客户证书已经到期或者尚未生效
403错误是网站访问过程中,常见的错误提示。我们遇到了,也不要心慌不要急,关键是结合上述错误提示找出原因,然后解决问题。
首先,检查一下代码里有没有设置User-Agent。对有些header要特别留意,Server端会针对这些header做检查。User-Agent有些Server或Proxy会检查该值,用来判断是否是浏览器发起的Request。Content-Type在使用REST接口时,Server会检查该值,用来确定HTTP Body中的内容该怎样解析。这时可以通过修改http包中的header来实现。
其次,使用http。这其中有两个层面。一是一定要确保使用的是高匿代理IP,比如覆盖了全球ip资源的IPIDEA,ip数量每日达9000w,大家都知道代理IP按匿名程度可以分为透明代理、普匿代理和高匿代理。透明代理会透露本机IP,普匿代理会透露使用了代理IP,这两者都会暴露使用了代理IP的事实,很容易被识别,高匿代理则不会暴露;二是尽量使用纯净的代理IP。如果有很多其他人和你使用一样的IP同时访问一个网站,也很容易被识别,当这些IP访问频率过快或者访问测试达到了目标网站的阈值时,则会被封IP。
403Forbidden错误一般在爬虫采集数据时出现的频率比较多,在爬虫使用代理IP的时候因为不停地访问服务器终端,频发请求时,服务器终端压力过大,触发了反爬虫机制,导致服务器会拒绝这个IP的访问请求,这个时候如果不切换掉被禁用的IP地址,肯定会影响正常的数据采集效率。所以就需要设置时间来定时切换IP地址。IP代理最核心的功能,就是可以更换各个城市不同的IP地址,而且可以隐藏本地的IP地址。