手机版

详细解释如何设置Asp.net web . config customerrors

时间:2021-09-01 来源:互联网 编辑:宝哥软件园 浏览:

摘要

CustomErrors在开发和部署中经常会看到CustomErrors mode=' Off '/这样就可以在页面上看到详细的错误信息。但它也为黑客提供了攻击的线索。

自定义错误信息

该节点有三个可选设置

On:最安全的服务器开发选项,因为它总是隐藏错误消息。RemoteOnly:向大多数用户显示一般错误信息,但向具有服务器访问权限的用户显示完整的错误提示信息。换句话说,只有自定义错误显示给远程客户端,而ASP.NET错误显示给本地主机。默认值。关闭:最易受攻击的选项,向每个访问网站的用户显示详细的错误消息。详细的错误信息可能会暴露应用程序的内部结构。例如,如果在编写的sql语句中报告了错误,则可能会暴露数据表和sql语句,这是非常不安全的。在Off设置下,黑客会不断尝试,传递不同的参数,让你的网站出问题,然后暴露你的应用的内部结构。

模式=关闭

例如:

system.web身份验证模式='None' /编译调试=' true ' target framework=' 4.5 '/Httpruntime target framework=' 4.5 '/Customerrors模式=' off ' default redirect=' error '/Customerrors/system。web在TestAction中直接抛出一个异常,然后我们可以看到一个类似如下的黄色页面

从黄页中可以看到,这些页面对应于逻辑堆栈信息,它公开了项目结构信息。非常不安全。

那么,如果模式=Off,并且在事件Application_Error中记录并清除错误,你会看到什么结果?

受保护的void Application_Error(对象发送方,事件参数e) { var context=HttpContext。当前;if(上下文!=null) {异常objErr=上下文。server . GetLastError();if (objErr!=null) {字符串错误='应用程序错误事件中捕获的错误/n ' '请求中的错误: '。URL . ToString()'/n错误消息:' objErr。message . ToString()'/nStack trace : ' ObJerr。stack trace . ToString();日志逻辑服务器。ClearError();} } } customerrorsmode=' off ' default redirect=' error '/customerrorsdefaultedirect指定发生错误时浏览器指向的默认URL。如果未指定默认重定向,将显示一般错误。网址可以是绝对的(例如http://www。***.com/ErrorPage.htm)或相对值。相对URL(例如/ErrorPage.htm)是相对于指定defaultRedirect的Web.config文件的,而不是相对于生成错误的页面的。以波浪号(~)开头的URL(如~/ErrorPage.htm)表示指定的URL是相对于应用程序根路径的。

通过上述操作,如果设置为关闭,并且在应用程序错误事件和服务器中捕获到异常。ClearError(),那么如果报告了错误,就会在首页看到一个空白页。

也可以解释为,如果应用出错,会先触发Application_Error事件,在ClearError之后,页面上看不到结果。

模式=开

在设置为on模式的cOndition下,如果应用程序出现错误,将跳转到用户定义的错误页面,使用defaultRedirect属性,错误状态代码=' 500' redirect=' error'/

模式=仅远程

字面上,只是遥远,只是遥远。什么事?看看这个例子。在目前的编码环境下,通过vs调试状态,想要远程访问的用户可以把这台机器当成服务器。那么这是本地的,而远程访问的浏览器是远程的。

可以看到,在服务器端,仍然可以看到黄页,这就是上面提到的ASP.NET错误。那么,当我们在服务器上部署站点,然后在本地访问它时会发生什么呢?

通过客户端访问服务器的url,您将跳转到默认的自定义错误页面。那么服务器端的情况如何呢?

描述:仅向远程客户端显示自定义错误,向本地主机显示ASP.NET错误。

摘要

因此,不要在生产环境中关闭客户错误。建议打开“仅远程”或“打开”,并定义自定义错误页面。

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:详细解释如何设置Asp.net web . config customerrors是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。