Asp.net

這是企圖破壞我的 ASP.Net 站點的安全性嗎?

  • March 25, 2009

我對 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 中的資訊來加密資源的唯一標識符。當請求資源時會引發此異常,但當伺服器嘗試解密提供的標識符時,它會失敗。

引用自:https://stackoverflow.com/questions/617782