一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - 詳解Asp.net web.config customErrors 如何設置

詳解Asp.net web.config customErrors 如何設置

2020-05-23 15:39wolfy ASP.NET教程

這篇文章主要介紹了詳解Asp.net web.config customErrors 如何設置,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

摘要

customErrors也經常在開發部署中看到<customErrors mode="Off" />,設置這樣可以在頁面上看到詳細的錯誤信息。但也為黑客提供了攻擊的線索。

customErrors

該節點有三種可選的設置項

  1. On:服務器開發的最安全選項,因為它總是隱藏錯誤提示信息。
  2. RemoteOnly:向大多數用戶展示一般的錯誤信息,但向擁有服務器訪問權限的用戶展示完整的錯誤提示信息。換句話說,僅向遠程客戶端端顯示自定義錯誤,并向本地主機顯示 ASP.NET 錯誤。默認值。
  3. Off:最容易受到攻擊的選項,它向訪問網站的每個用戶展示詳細的錯誤提示消息。

詳細的錯誤信息可能會暴露應用程序的內部結構,比如如果寫的sql語句中報錯,可能會暴露數據表,以及sql語句,這是非常不安全的。在Off設置下的網站,黑客會不斷的嘗試,傳遞不同的參數,使你的網站出錯,然后暴露你的應用程序的內部結構。

mode=Off

比如:

?
1
2
3
4
5
6
7
<system.web>
  <authentication mode="None" />
  <compilation debug="true" targetFramework="4.5" />
  <httpRuntime targetFramework="4.5" />
  <customErrors mode="Off" defaultRedirect="error">
  </customErrors>
 </system.web>

在TestAction中直接拋出一個異常,那么我們可以看到與下面類似的黃頁

詳解Asp.net web.config customErrors 如何設置

在黃頁上面可以看到,頁面對應邏輯的堆棧信息,進而暴露項目結構信息。非常的不安全。

那么如果是mode=Off,并且在事件Application_Error中記錄并清除錯誤,會看到什么結果?

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
protected void Application_Error(object sender, EventArgs e)
    {
      var context = HttpContext.Current;
      if (context != null)
      {
 
        Exception objErr = context.Server.GetLastError();
        if (objErr != null)
        {
          string err = "Error Caught in Application_Error event/n" + "Error in:"
+ Request.Url.ToString() + "/nError Message:" + objErr.Message.ToString() +
       "/nStack Trace:" + objErr.StackTrace.ToString();
        、、、、、日志邏輯
          Server.ClearError();
        }
      }
    }
?
1
2
<customErrors mode="Off" defaultRedirect="Error">  
</customErrors>

defaultRedirect 指定發生錯誤時瀏覽器指向的默認 URL。如果沒有指定 defaultRedirect,則會顯示一般性錯誤。URL 既可以是絕對的(例如 http://www.***.com/ErrorPage.htm),也可以是相對的。相對 URL(如 /ErrorPage.htm)是相對于指定 defaultRedirect 的 Web.config 文件而言的,而不是針對產生錯誤的網頁。以波形符 (~) 開頭的 URL(如 ~/ErrorPage.htm)表示所指定的 URL 是相對于應用程序根路徑而言的。

通過上面的操作,如果設置Off,并且在Application_Error事件中捕獲異常,并 Server.ClearError(),那么如果報錯,在前端頁面就會看到空白的頁面。

詳解Asp.net web.config customErrors 如何設置

通過這個也可以說明,如果應用程序出錯,先觸發的Application_Error事件,ClearError之后,那么在頁面上就看不到結果了。

mode=On

在設置On模式情況下,如果應用程序發生錯誤,會跳轉到自定義的錯誤頁,這里使用了defaultRedirect屬性,并沒有配置 <error statusCode="500" redirect="error"/>

詳解Asp.net web.config customErrors 如何設置

mode=RemoteOnly

通過字面意思,僅僅遠程,僅僅遠程什么呢?可以看下例子。目前所在編碼環境,通過vs調試狀態,相對遠程要訪問的用戶,可以將本機當做服務器。那么這就是本地,遠程訪問的瀏覽器就是Remote。

詳解Asp.net web.config customErrors 如何設置

可以看到,在服務器端,訪問仍然能看到黃頁,也就是上面所說的ASP.NET錯誤。那么我們將站點部署在服務器,然后在本地訪問會出現什么情況呢?

詳解Asp.net web.config customErrors 如何設置

通過客戶端訪問服務器的url,則會跳轉到默認的自定義錯誤頁面。那么在服務器端又是什么情況呢?

詳解Asp.net web.config customErrors 如何設置

說明: 僅向遠程客戶端端顯示自定義錯誤,并向本地主機顯示 ASP.NET 錯誤

 總結

所以,不要在生產環境中將customErrors關閉。 推薦開啟RemoteOnly或者On并定義自定義的錯誤頁面。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/wolf-sun/p/8444756.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产美女久久久久 | 国产在线视频一区二区三区 | 四虎影院永久网站 | 午夜福利合集1000在线 | 天堂在线中文无弹窗全文阅读 | 色香视频在线 | 久久免费看少妇高潮A片JA | 91香蕉国产在线观看免费永久 | 国产精品久久国产三级国电话系列 | 久久久久综合 | 免费真实播放国产乱子伦 | 精品欧美日韩一区二区三区 | 国产剧情麻豆刘玥视频 | 2020年最新国产精品视频免费 | 国产一区二区三区欧美精品 | 成人观看免费观看视频 | 亚洲香蕉伊在人在线观婷婷 | 福利片福利一区二区三区 | 久久精品国产在热亚洲完整版 | 国产男人搡女人免费视频 | 久久婷婷五月综合色精品首页 | 国产成人盗拍精品免费视频 | 高清国产精品久久久久 | 男男gaygays黑人 | 肉色欧美久久久久久久蜜桃 | 天天色综合三 | 免费黄色网站视频 | 男人晚上看的 | 久久久久免费视频 | 果冻传媒天美传媒乌鸦传媒 | 四虎网址 | 第一福利在线导航 | 日本三级斤| 成人欧美视频在线看免费 | 亚洲国产AV一区二区三区四区 | 亚洲欧美日韩久久一区 | 国产18在线| 免费观看毛片视频 | 荡娃艳妇有声小说 | 青草国产福利视频免费观看 | 激情艳妇|