诡异的Invalid postback or callback argument(無效的回傳或回呼引數)

今天碰到一個奇怪的現象,當使用者在網頁上快速點擊按鈕或其他會導致 postback 的動作時(即每次 request 還沒來得急接收到 response 就又再點其它按鈕),會發生 Invalid postback or callback argument 錯誤。原始訊息為:

無效的回傳或回呼引數。已在組態中使用 或在網頁中使用 啟用事件驗證。基於安全性理由,這項功能驗證回傳或回呼引數是來自原本呈現它們的伺服器控制項。如果資料為有效並且是必需的,請使用 ClientScriptManager.RegisterForEventValidation 方法註冊回傳或回呼資料,以進行驗證。
於 System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument) 於 System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument) 於 System.Web.UI.HtmlControls.HtmlAnchor.RaisePostBackEvent(String eventArgument) 於 System.Web.UI.HtmlControls.HtmlAnchor.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) 於 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) 於 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) 於 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

ASP.NET 2.0 新增了一個網頁安全檢查的機制,當它發現 postback 資料不是原始的控制項發出來的,就會出現這個錯誤。如果網頁上有一些特殊的寫法會去修改 postback 資料,也會出現這個錯誤訊息。這種情況的解決方法有兩個,一個是呼叫  ClientScriptManager.RegisterForEventValidation,另一個是直接將網頁的 EnableEventValidation 設定為 false(或修改 web.config 的 pages 元素),當然,第二種方法是比較不安全的。

可是我的網頁並沒有寫特殊的程式碼去修改 postback 資料,也可以確定沒有駭客從中攔截篡改 postback 資料。實際測試之後發現,可以確定是 user 一直快速猛點網頁造成的。Hmm...蠻詭異的現象....

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值