我对 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 工作进程设置引用 machine.config 文件中的 processModel 元素。请参阅http://msdn.microsoft.com/en-us/library/7w2sway1(VS.80).aspx了解更多信息。
建议的修复方法是在 web.config 文件中设置加密的 machineKey。 Machine Key 节点位于 system.web 元素中。
这很容易完成并解决了问题,这要归功于方便的 ASP.NETResources 站点,它有一个 MachineKey Generator。请参阅http://www.aspnetresources.com/tools/keycreator.aspx .
最佳答案
当程序集资源处理程序收到无效请求时,会引发此异常。这不太可能与任何恶意事件有关;这通常是由于服务器上的机器配置不正确造成的。
一些背景:
ASP.NET 具有通过 HttpHandler 从程序集 (dll) 公开资源的内置机制。 JavaScript 和图像等资源可以作为文本存储在程序集中,并由浏览器通过 .axd 处理程序请求。但出于安全原因,处理程序不接受资源的纯文本位置,这可能会暴露有关代码如何工作的线索。相反,它使用服务器上 machine.config 中的信息来加密资源的唯一标识符。当请求资源时会抛出此异常,但当服务器尝试解密提供的标识符时,会失败。
关于asp.net - 这是企图破坏我的 ASP.Net 站点的安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/617782/