问题介绍
403是Web服务器返回的一种非常常见的错误代码,Http协议中对403错误定义如下,
403 Forbidden
The server understood the request, but is refusing to fulfill it. Authorization will not help and the request SHOULD NOT be repeated. If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled, it SHOULD describe
the reason for the refusal in the entity. If the server does not wish to make this information available to the client, the status code 404 (Not Found) can be used instead.
而在IIS中根据具体的功能对403错误通过子错误代码的形式进行了更详细的分类。
IIS 7.0 defines the following HTTP status codes that indicate a more specific cause of a 403 error:
403.1 - Execute access forbidden.
403.2 - Read access forbidden.
403.3 - Write access forbidden.
403.4 - SSL required.
403.5 - SSL 128 required.
403.6 - IP address rejected.
403.7 - Client certificate required.
403.8 - Site access denied.
403.9 - Forbidden: Too many clients are trying to connect to the Web server.
403.10 - Forbidden: Web server is configured to deny Execute access.
403.11 - Forbidden: Password has been changed.
403.12 - Mapper denied access.
403.13 - Client certificate revoked.
403.14 - Directory listing denied.
403.15 - Forbidden: Client access licenses have exceeded limits on the Web server.
403.16 - Client certificate is untrusted or invalid.
403.17 - Client certificate has expired or is not yet valid.
403.18 - Cannot execute requested URL in the current application pool.
403.19 - Cannot execute CGI applications for the client in this application pool.
403.20 - Forbidden: Passport logon failed.
403.21 - Forbidden: Source access denied.
403.22 - Forbidden: Infinite depth is denied.
403.502 - Forbidden: Too many requests from the same client IP; Dynamic IP Restriction limit reached.
这篇文章通过实验来重现一些常见的403错误,希望能够更加形象的演示各种错误发生的原因,并介绍相应问题的解决方法。
[403.1 403.3]
造成403.1 - 403.3的主要原因是由于handler需要的权限受到HandlerMapping中启用的权限的限制。
如何查看handler需要的权限?可以通过IISManager - Handler Mapping,根据请求的扩展名找到相应的Handler,比如我们请求.asp文件的时候报错403.3,找到处理.asp文件的handler为ASPClassic这个handler,双击打开这个handler的Script Map - Request Restrictions - Access,可以查看该handler需要的权限。在这里为了重现403.3问题,我将需要权限设置为write。
如何查看Handler Mapping启用的权限?可以通过IIS Manager - Configuration Editor打开system.webServer/handlers@accesspolicy配置节点如下,可以看到Write选项没有被选中,所以在访问asp页面的时候会出现403.3错误。另外在handler mapping中也可以看到相应的ASPClassichandler对应的状态为disabled。
403.1, 403.2的错误原因与403.3是一致的,即相应handler需要的的Script或者Read权限没有启用。
[403.4 403.5 403.7]
403.4, 403.5, 403.7均是由于SSL设置造成的,本身大多数时候并非服务器端错误,而是客户端的请求没有满足服务端的要求。例如
403.4是指客户端发送了一个http请求到一个配置了需要SSL的网站
403.5是指客户端发送的请求没有满足服务器对于SSL的加密位数要求
403.7是指客户端没有提供相应的证书
这些配置可以通过服务器端IIS Manager - SSL Setting中来配置,
但是对于ssl的128位数要求需要通过Configuration Editor来找到system.webServer/security/access@sslFlags来配置
对于403.7错误有一个值得注意的地方,服务器如果配置了需要客户端证书,客户端正常情况下会弹出证书选择框来给用户选择用哪个证书发送给服务器。如果客户端在只有一张证书的情况下不会弹选择框而直接发送给服务器。如果遇到了403.7错误,很可能是因为客户端没有找到一个可用的证书。
这里所谓的可用证书的根据服务器返回的信任列表来定义的,根据SSL协议,服务器会在SSL握手的时候返回一组服务器信任的根证书给客户端,客户端查找是否存在相应的用户证书链接自这些根证书,然后弹出选择框。所以如果这里没有找到客户端证书的话,要先确定客户端是否有相应的证书,如果没有则需要安装,如果证书存在,那么要检查其相应的根证书是否在服务器端的信任列表中。
[403.14]
403.14非常常见,而且原因也很简单,就是目录不允许被浏览。
解决方法要根据实际需求来看,
1.如果客户请求的问题,即浏览了不该浏览的目录,那服务器不需要任何更改
2.如果浏览的目录期待的结果应该是一个默认网页,很有可能是default document没有配好或者不在目录下
3.如果需要启用目录浏览,则到IIS Manager到指定的目录 - Directory Browsing - Enable
[403.6 403.8]
这两种错误与服务器配置相关,服务器在ipSecurity配置中阻止了客户端相应的ip或者dns名字。具体的配置为system.webServer/security/ipSecurity
以上就是最常见的403错误以及相应的解决方法,如果遇到了一些比较少见的其他错误,可以参考这里查找具体的解决方案。
http://support.microsoft.com/kb/943891
分享到:
相关推荐
用于气象要素重现期的计算的函数,使用皮尔逊III型、耿贝尔型、I型概率分布、广义极值分布这四种方法进行气象要素重现期的计算。
Druid连接泄露问题重现&解决方式
IE重现桌面方法
matlab实现Copula函数的二维联合重现期计算。
解决方法:在phpStudy里面修改mysql数据库的密码。 2、mysql的版本与导入的数据所用的版本不同 之前我导入老师给的项目代码时,出现过大量的表出错,导致,无法将sql文件导入数据库。后来发现是mysql的版本号不同,...
基于SQL重现数据同步方法移动环境实现.pdf
本文主要讲解了单片机系统的故障重现设计及实现,需要的朋友可以参考下。
目前,世界各地对暴雨重现期的取值各有千秋。在参考各类文献基础上,给出了矿区中工业厂区与外部道路的防洪、排涝的重现期取值,对工程中关于防排水设计提供一定的参考。
基于研究不同温度下燃煤排放硫含量测试方法以控制燃煤二氧化硫污染的必要性,对电化学法、烟气分析法、化学滴定法3种燃煤可排放硫含量试验方法进行对比分析及探讨。通过对测试数据的分析对比以探讨试验方法的可行性,...
行业分类-电子-一种提高工作电极重现性的方法及其应用
行业-电子政务-录制、处理、及录制重现图像的方法和装置,及其电视接收机.zip
行业分类-设备装置-一种应用于农家书屋文献阅读的笔记及快速重现方法
Multi-threaded programs play an increasingly important role in current multi-core environments. Exposing concurrency bugs and debugging such multi-threaded programs are quite challenging due to their ...
利用C++ Builder实现GPS参数提取及轨迹重现的功能。 地图范围包括四川省内及周边省市。 完整地图资源及程序的百度网盘链接见资源的txt文档。
数据重现文件系统原理精解与数据恢复,针对windows系统的磁盘和文件结构的详细解读。PDF档压缩为ZIP。
错误重现Cucumber
“基于SQL重现法”变化捕获方法的研究与实现.pdf
抛开这些大道理不谈,它们确实浪费了我们大量时间,这些错误引发的是随机现象,即使有一些先进工具的帮助,为了找到重现的路径,花上几天时间也不足为怪。如果能够在编写代码的时候避免这些错误,开发效率至少提高一...
皮尔逊Ⅲ推求降雨重现期
数据重现:文件系统原理精解与数据恢复最佳实践 一共4个压缩包,下载完毕后解压即可