本文主要详细介绍如何设置Asp.net web . config的Customerrors。边肖认为这很好。现在分享给大家,给大家一个参考。来和边肖一起看看吧。
摘要
CustomErrors在开发和部署中也经常看到CustomErrors mode=' Off '/。设置它,以便您可以在页面上看到详细的错误信息。但也为黑客攻击提供了线索。
customErrors
该节点有三个可选设置。
On:服务器开发的最安全选项,因为它总是隐藏错误消息。
RemoteOnly:向大多数用户显示一般错误信息,但向具有服务器访问权限的用户显示完整的错误消息。换句话说,只有自定义错误显示给远程客户端,而ASP.NET错误显示给本地主机。默认值。
关闭:最易受攻击的选项,向每个访问网站的用户显示详细的错误消息。
详细的错误信息可能会暴露应用程序的内部结构。例如,如果在编写的sql语句中报告了错误,则数据表和sql语句可能会暴露,这是非常不安全的。在Off-set网站中,黑客会不断尝试,传递不同的参数,使你的网站出错,然后暴露你的应用程序的内部结构。
mode=Off
例如:
system.web
身份验证模式='None' /
编译调试='true' targetFramework='4.5' /
httpRuntime target framework=' 4.5 '/
customErrors mode=' Off ' default redirect=' error '
/客户错误
/system.web
直接在TestAction中抛出异常,然后我们就可以看到类似下面的黄页。
在黄页上,您可以看到页面对应于逻辑堆栈信息,从而暴露了项目结构信息。非常不安全。
那么如果mode=Off,并且在事件Application_Error中记录并清除错误,会看到什么呢?
受保护的void应用程序错误(对象发送方,EventArgs e)
{
var context=HttpContext。当前;
如果(上下文!=空)
{
异常objErr=上下文。server . GetLastError();
如果(objErr!=空)
{
string err=' Application _ Error事件中捕获的错误/n ' '错误在:'
请求。URL . ToString()'/n错误消息:' objErr。Message.ToString()
/nStack Trace:' objErr。stack trace . ToString();
、日志逻辑
服务器。clear error();
}
}
}
customErrors mode=' Off ' default redirect=' Error '
/客户错误
DefaultRedirect指定发生错误时浏览器指向的默认URL。如果未指定defaultRedirect,将显示一个常规错误。URL可以是绝对的(例如,http://www。***.com/ErrorPage.htm)或相对。相对URL(如/ErrorPage.htm)相对于指定defaultRedirect的Web.config文件,而不是导致错误的网页。以波浪符号(~)开头的URL(如~/ErrorPage.htm)表示指定的URL相对于应用程序的根路径。
通过上面的操作,如果你设置了Off,在Application_Error事件中捕捉一个异常,并服务器。ClearError(),那么如果你报告一个错误,你会在首页看到一个空白页。
这也可以说明,如果应用出错,会先触发Application_Error事件,然后页面上就看不到结果了。
mode=On
当设置了On模式时,如果应用程序有错误,它将跳转到用户定义的错误页面。此处使用了defaultRedirect属性,但错误状态代码=' 500' redirect=' error'/
mode=RemoteOnly
字面上,只是远程,只是远程什么?看一个例子。目前在编码环境下,通过vs调试状态,想要远程访问的用户可以使用本机作为服务器。那么这个是本地的,远程访问的浏览器是远程的。
如您所见,在服务器端,access仍然可以看到黄页,这就是上面提到的ASP.NET错误。那么,当我们在服务器上部署站点,然后在本地访问它时,会发生什么呢?
当客户端访问服务器的url时,它将跳转到默认的自定义错误页面。那么服务器端是什么情况呢?
注意:只有自定义错误显示在远程客户机上,而ASP.NET错误显示在本地主机上。
总结
因此,不要在生产环境中关闭customErrors。打开RemoteOnly或,并定义一个自定义错误页。
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。