【问题标题】:ScriptResource error: am I being hacked?ScriptResource 错误:我被黑了吗?
【发布时间】:2010-10-30 09:16:04
【问题描述】:

我在我的一个网站上不断收到类似的错误。它往往在一天中随机发生,在我不希望网站上有用户的夜间时段。

总是来自不同的ip地址

System.Web.HttpException:无效 视图状态。在 System.Web.UI.Page.DecryptStringWithIV(字符串 s, IVType ivType) 在 System.Web.UI.Page.DecryptString(字符串 s)

System.Security.Cryptography.CryptographicException: 填充无效,不能 删除。在 System.Security.Cryptography.RijndaelManagedTransform.DecryptData(字节[] 输入缓冲区,Int32 输入偏移量,Int32 输入计数,字节 []& 输出缓冲区, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast) 在 System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(字节[] 输入缓冲区,Int32 输入偏移量,Int32 输入计数)在 System.Security.Cryptography.CryptoStream.FlushFinalBlock() 在 System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(布尔 fEncrypt, Byte[] buf, Byte[] 修饰符, Int32 开始,Int32 长度,IVType ivType, Boolean useValidationSymAlgo) 在 System.Web.UI.Page.DecryptStringWithIV(字符串 s, IVType ivType) 在 System.Web.UI.Page.DecryptString(字符串 s)

它们发生在这个页面:

 ScriptResource.axd?d=VVe1O4rzLSI9hB5nRzBXZxUYTQz6ylDTL9djGR

该站点使用 Ajax 并在 .NET 3 上运行。

这是有人试图入侵该网站吗?是不是网站的html有错误?

有什么想法吗?

【问题讨论】:

    标签: .net scriptresource.axd


    【解决方案1】:

    我认为此错误是由于您的 ViewState 使用过期的 ViewStateUserKey 解密造成的。

    消除这些错误需要两个步骤:

    1. 确保您拥有特定于站点的验证密钥。您可以使用多种在线资源为您生成一个,例如this one
    2. 确保页面的 ViewStateUserKey 始终一致。来自 MSDN 文档:

    设置 ViewStateUserKey 属性可以帮助您防止恶意用户对您的应用程序进行攻击。它允许您为各个用户的视图状态变量分配一个标识符,这样他们就不能使用该变量来生成攻击。您可以将此属性设置为任何字符串值,例如用户的会话 ID 或用户的认证名称。

    您可以通过自己设置来做到这一点(可能在您的 Page 或基本 Page 的 Init 事件中):

    if (Session["ViewStateUserKey"] == null)
    {
        Session["ViewStateUserKey"] = new Guid().ToString();
    }    
    this.Page.ViewStateUserKey = Session["ViewStateUserKey"].ToString();
    

    不,我不认为你被黑了。

    【讨论】:

    • 嗯,这是一个祝福,谢谢你的回答,我会试一试的。这会导致用户浏览器出错吗?
    • 我认为它必须这样做,虽然我自己从来没有能够复制它 - 我已经看到很多日志中有这个错误。
    猜你喜欢
    • 2012-12-03
    • 2018-08-27
    • 1970-01-01
    • 2020-01-22
    • 2019-01-06
    • 2016-06-12
    • 1970-01-01
    相关资源
    最近更新 更多