這是企圖破壞我的 ASP.Net 站點的安全性嗎?
我對 ASP.NET 相當陌生。我最近從我的網站設置了自動電子郵件,以通知我未處理的異常。就在幾個小時前的 3 分鐘內,有 10 個未處理的異常,並且所有堆棧跟踪都相似。錯誤消息中有很多我不明白的地方,但我不喜歡它的外觀。
這是其中一封電子郵件:
An unhandled exception occurred: Message: Padding is invalid and cannot be removed. Stack Trace: at System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[]& outputBuffer, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast) at System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) at System.Security.Cryptography.CryptoStream.FlushFinalBlock() at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo) at System.Web.UI.Page.DecryptStringWithIV(String s, IVType ivType) at System.Web.Handlers.AssemblyResourceLoader.System.Web.IHttpHandler.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)這是企圖侵入我的網站還是其他什麼?
非常感謝那些提供答案和評論的人,這為我指明了正確的方向,以得到這個例外的答案。它的原因可能很難確定,尤其是當不在網路場中發生時。
IE 5.5 並沒有像我之前所想的那樣引起問題。
這不是很容易找到的,但是其中一位工作人員在我的網路主機論壇上發帖提到了 Viewstate 錯誤的報告。原因歸結為asp工作程序或伺服器回收。
asp worker 程序設置是指 machine.config 文件中的 processModel 元素。有關詳細資訊,請參閱http://msdn.microsoft.com/en-us/library/7w2sway1(VS.80).aspx。
建議的修復方法是在 web.config 文件中設置加密的 machineKey。機器密鑰節點位於 system.web 元素中。
由於方便的 ASP.NETResources 站點具有 MachineKey Generator,這很容易完成並解決了問題。請參閱http://www.aspnetresources.com/tools/keycreator.aspx。
當程序集資源處理程序收到無效請求時,將引發此異常。這不太可能與任何惡意活動有關;它通常是由伺服器上配置錯誤的機器配置引起的。
一些背景:
ASP.NET 具有通過 HttpHandler 從程序集 (dll) 公開資源的內置機制。JavaScript 和圖像等資源可以作為文本儲存在程序集中,並由瀏覽器通過 .axd 處理程序請求。但是出於安全原因,處理程序不接受資源的純文字位置,這可能會暴露有關您的程式碼如何工作的線索。相反,它使用伺服器上 machine.config 中的資訊來加密資源的唯一標識符。當請求資源時會引發此異常,但當伺服器嘗試解密提供的標識符時,它會失敗。