Iis-6
在開發和生產環境中應該使用相同的機器密鑰嗎?
我們的生產伺服器都具有相同的機器密鑰。但是,我們的生產和開發系統沒有相同的機器密鑰。我們得到一堆(大約每秒一個)形式的異常
System.Security.Cryptography.CryptographicException: Padding is invalid and cannot be removed. at System.Security.Cryptography.RijndaelManagedTransform.DecryptData() at System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock() at System.Security.Cryptography.CryptoStream.FlushFinalBlock() at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData() at System.Web.UI.Page.DecryptStringWithIV()...
我們在建構後部署程式碼,.cs 源不存在於生產環境中。aspx 文件存在於生產中。
(我應該在 Stack Overflow 上發帖嗎?這不是編碼問題。)
通過實驗,我們發現使用 dev 機器鍵值會導致異常消失。有沒有人有我可以與安全團隊一起使用的關於在編譯和部署時需要相同密鑰的文件?
答案是不。
不使用相同機器密鑰的原因是開發人員不應該看到生產環境密鑰。如果您有前員工或外部顧問,您不能保證他們不會將開發程式碼傳播到某個地方。在壞人手中,密鑰很容易攻擊伺服器。
這是一個很好的連結。