【问题标题】:EndOfStreamException caused by spammer垃圾邮件发送者引起的 EndOfStreamException
【发布时间】:2011-06-04 13:24:40
【问题描述】:

我的网站上有一个联系页面,似乎已被垃圾邮件发送者锁定。

错误本身是:

    System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
at System.IO.BinaryReader.ReadByte()
at System.Web.UI.ObjectStateFormatter.DeserializeIndexedString(SerializerBinaryReader reader, Byte token)
at System.Web.UI.ObjectStateFormatter.DeserializeValue(SerializerBinaryReader reader)

Google 很少出现。

我假设他们提交了无效的视图状态,但异常没有行号,所以我很难过。

编辑:我的问题是,我在哪里可以捕捉到这个异常或检查视图状态的有效性。\

【问题讨论】:

    标签: c# asp.net exception webforms viewstate


    【解决方案1】:

    在 webconfig 使用这个(改变你的目标框架。这会让你安全。)

    <pages validateRequest="true" viewStateEncryptionMode="Never" 
       enableViewStateMac="true" enableSessionState="true"
       controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID">
    </pages>
    

    【讨论】:

    • 该字符串中的哪个属性会有所不同?改变它有什么影响?
    • @NickG validateRequest="true" enableViewStateMac="true" enableSessionState="true" validaterequest 防止恶意 url 请求和表单提交
    • 这是否真的阻止了异常的发生,或者只是提高了安全性?我不确定该配置的效果是什么。
    猜你喜欢
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 2011-08-12
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    相关资源
    最近更新 更多