當系統開發人員好不容易將程式碼撰寫完成且正式上架後,在面臨網站的環境中,一定會遭受到網路上惡意的攻擊,其中最主要的目的就是找出網站平台中,資料庫的連線內容,而前端的平台與後端的資料庫在連線的過程中,往往是透過前端的設定(webconfig)後,存取後端的資料庫。
此時,若網站被找出弱點後,webconfig的連線字串都被揭露在駭客的手中,還有什麼自保的方式呢?除了發現後立刻更改後端資料庫的密碼,以防被2次入侵(不過該方式是治標不治本的駝鳥心態,或許資料庫內的個資已被洩露出去了)。
那還有什麼方式是能提高網站安全性的呢? 就是在開發的環境中,加入資安的概念,保護好開發環境的連線內容,在數據傳輸的過程中進行加密,就算連線方式被駭客所竊取,也難以被利用。
webconfig 組態檔加解密教學操作方式
★注意:加解密必須在同一台機器上,否則會無法正常執行
加密 (Encryption)
1.將專案資料夾複製到預定的Server上
2.確定專案使用的Framework版本(本範例使用的是4.0)
3.開啟Command Mode,將路徑切換到C:\Windows\Microsoft.NET\Framework\(Frmework版本)下
4.執行以下指令進行加密:
aspnet_regiis.exe -pef "connectionStrings" "D:\WWWRoot\GoogleMap" -prov "DataProtectionConfigurationProvider"
其中:
"connectionStrings":針對組態檔內的connectionStrings標籤內的資料加密
"D:\WWWRoot\GoogleMap":專案的實體路徑
5.加密完成
開啟webconfig的設定檔案,可看出連線至後端資料庫的字串內容已被加密,多了層安全性。
解密(Decryption)
1.確定專案於Server上的路徑
2.確定專案使用的Framework版本(本範例使用的是4.0)
3.開啟Command Mode,將路徑切換到C:\Windows\Microsoft.NET\Framework\(Frmework版本)下
4.執行以下指令進行解密:
aspnet_regiis.exe -pdf "connectionStrings" "D:\WWWRoot\GoogleMap"
其中:
"connectionStrings":針對組態檔內的connectionStrings標籤內的資料解密
"D:\WWWRoot\GoogleMap":專案的實體路徑
5.解密完成
至webconfig檔案內,開啟原先的設定內容,即可看到原先被加密的字串已被還原回來,此時可以再做更動修改後,別忘了再把檔案加密完成。
參考資料: