2008-11-09 3 views
1

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는 어떻게 든 8 진수 값으로 간주됩니까? 이 값은 오류 메시지를 트리거하는 이유

누군가는 설명 할 수 있습니까? 나는 또한 해결책을 찾고 있지만 제발, 페이지 유효성 검사를 제거하라고 말하지 마라. 그것은 나쁜 브레이크가있는 차가 차를 운전하지 않음으로써 고칠 수 있다고 말하는 것과 같습니다.

미리 감사드립니다.

+0

이가 더 삐걱 거리는 브레이크와 자동차처럼 브레이크를 제거하여 고정되지 않을까요 : 저는 여기에 다른 사이트에서 가져온 응답 최고 링크입니까? –

답변

1

내 첫 번째 추측은 "OnSomething ="javascript 이벤트 선언처럼 보입니다.

대문자 O 만 오류를 유발한다는 것은 조금 이상합니다. 소문자 o에서도 테스트 했습니까?

당신이 시도 할 수 "의 OnClick =", "ABC 방송의 OnClick =", "onclick을 =", "ABC의 onclick =", "순자산 =", "BNW ="...


이 "OnSomething = x"를 자바 스크립트는 단순히 트릭을 어떻게해야 당신의 가치에 다른 문자를 추가하는 문제입니다. 어쩌면 간단한 'v'가해야 할 것 같습니다.

<input type="hidden" id="__VSTATE" runat="server" value="vOnw=" /> 

그런 다음 제출할 때 추가 문자를 제거한 다음 해독하십시오.

또는 더 나은 아직, 2.0으로 업그레이드합니다.