2015-06-03 205 views
1

我正在考慮在asp.net應用程序中的web配置文件的安全性,從web配置文件通常包含連接字符串到應用程序數據庫的角度來看,因此安全性很重要。asp.net網絡配置安全

在asp.net應用程序,連接字符串可以從Web配置文件中使用檢索:

ConfigurationManager.ConnectionStrings["connectionstring"] 

假設一個新的連接字符串的關鍵,是他們能夠以某種方式發送請求服務器並得到響應,或者是否有某種安全措施可以防止這種情況發生。

如果他們能夠這樣做,他們如何做到這一點,以及可以做些什麼來防止這種情況,例如加密連接字符串?

編輯:這不是問題Encrypting Connection String in web.config的重複,因爲我的問題是詢問是否有可能欺騙服務器提供此信息,如果有的話,我們如何防止它。提到的問題是如何加密數據,這是相關但不相同

+0

這個問題被問及在這裏回答: http://stackoverflow.com/questions/1706613/encrypting-connection-string-in-web-config – WeeklyDad

回答

1

ASP.NET將永遠不會通過HTTP提供web.config文件(或任何其他.config文件),所以答案是否定的,你不應該擔心。

如果你仍然擔心web.config文件的內容被暴露,請查看加密文件。

關於連接字符串,您也可以使用集成安全性,這樣您甚至不必在連接字符串中公開數據庫用戶/傳遞。

https://msdn.microsoft.com/en-us/library/bsz5788z%28v=vs.140%29.aspx

0

考慮到您使用的是asp.net應用程序,用戶應該無權訪問web.config。

只要您不使「connectionstring」可替換或ConfigurationManager.ConnectionStrings [「connectionstring」]數據暴露,它應該沒問題。

1

IIS默認配置爲不爲某些類型的文件,包含在此列表中的一個默認的類型與的.config擴展名的文件。然而,管理員可能會犯這樣的錯誤:將web.config重命名爲所服務的類型,例如,web.old,同時他們測試不同的配置設置,這意味着它實際上可以被服務。同樣,有人可能會錯誤地將惡意的.config類型從未提供服務的IIS類型的篩選器中刪除。

因此,推薦的做法是加密配置文件或部分。微軟提供了一個這樣的方法做這個作爲標準,並有充分的說明,並在其他問題解釋說,你鏈接到:

https://msdn.microsoft.com/en-us/library/zhhddkxy%28v=vs.140%29.aspx

服務類型的特定IIS實例的名單,可以發現在IIS7 +的IIS管理器中的「請求篩選」的「文件擴展名」選項卡中。