在我的ASP.NET 1.1應用程序中,我正在使用備用壓縮值壓縮並替換隱藏的Viewstate變量,該變量存儲在名爲__VSTATE的隱藏字段中。這很有效,但有幾次提交頁面會導致常見的「潛在危險的Request.Form值...」錯誤。隱藏的輸入字段導致潛在的危險Request.Form值錯誤
我檢查了__VSTATE值,似乎沒有任何潛在危險。我能夠通過完全精簡版的頁面和__VSTATE值重現錯誤,如下所示。按提交按鈕會導致錯誤。如果將該值更改爲「」,該頁面正常工作。
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="Dangerous.aspx.vb" Inherits="Dynalabs.Dangerous" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body MS_POSITIONING="FlowLayout">
<form id="Form1" method="post" runat="server">
<input type="hidden" id="__VSTATE" runat="server" value="Onw=" />
<asp:Button ID="btnSubmit" Runat="server" Text="Submit" />
</form>
</body>
</html>
更改字段名稱爲「MyHiddenWT」沒有區別。刪除runat =「server」確實阻止了錯誤,但這隻意味着.NET僅檢查服務器端控件。我也嘗試了一些額外的價值,發現以下幾點:
"Anw=", "Bnw=", "Cnw=", ... "Nnw=", "Onw=", "Pnw=", ... "Znw=",
「ONW =」是導致問題的唯一一個。資本O被認爲是一種八進制值嗎?
有人可以解釋爲什麼這個值觸發錯誤信息?我也在尋找解決方案,但請不要告訴我刪除頁面驗證。這就像說一輛不好的剎車可以通過不駕駛汽車來修理一樣。
預先感謝您。
那豈不是更像剎車吱吱響汽車被去除剎車固定的嗎? – 2008-11-10 05:19:58