2015년 10월 29일 목요일

viewstate 페이지의 상태 정보가 잘못되었으며 손상되었을 수 있습니다

[오류현상]

페이지 내용을 POST Submit 처리를 할때 아래와 같은 오류가 발생 함.
--------------------------------------

예외 정보: System.Web.HttpException: 이 페이지의 상태 정보가 잘못되었으며 손상되었을 수 있습니다.

[FormatException: 입력에 Base-64가 아닌 문자 또는 세 개 이상의 패딩 문자가 있거나 패딩 문자 사이에 잘못된 문자가 있기 때문에 입력이 유효한 Base-64 문자열이 아닙니다. ]
   System.Convert.FromBase64_Decode(Char* startInputPtr, Int32 inputLength, Byte* startDestPtr, Int32 destLength) +14115992
   System.Convert.FromBase64CharPtr(Char* inputPtr, Int32 inputLength) +162
   System.Convert.FromBase64String(String s) +56
   System.Web.UI.ObjectStateFormatter.Deserialize(String inputString, Purpose purpose) +102
   System.Web.UI.Util.DeserializeWithAssert(IStateFormatter2 formatter, String serializedState, Purpose purpose) +67
   System.Web.UI.HiddenFieldPageStatePersister.Load() +200

[ViewStateException: viewstate가 잘못되었습니다.

[HttpException (0x80004005): 이 페이지의 상태 정보가 잘못되었으며 손상되었을 수 있습니다.]
   System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +157
   System.Web.UI.HiddenFieldPageStatePersister.Load() +12061437

 

[원인]

PostBack 으로 전송되는 페이지 Form 내용중에,. __VIEWSTATE 및  __EVENTVALIDATION 이 중복으로 있어서, 상태값이 유효하지 않기 때문으로 (서버에 ViewState 내용 input 항목이 2개 이상 전송) ,  페이지 내용에 ViewState 를 처리하는 Form 개체 태그가 인위적으로 삽입되지 않도록 처리를 할 필요가  있음.

   <input id="__VIEWSTATE" type="hidden" name="__VIEWSTATE" value="/gSG .....
   <input id="__VIEWSTATEGENERATOR" ......
   <input id="__EVENTVALIDATION"  ......

   <input id="__VIEWSTATE" type="hidden" name="__VIEWSTATE" value="/wEPD .....
   <input id="__VIEWSTATEGENERATOR" ......
   <input id="__EVENTVALIDATION"  ......

 

 

 


2019년 10월 MS 취약점 패치 주요 사항

CVE-2019-1166 | Windows NTLM 변조 취약성 https://portal.msrc.microsoft.com/ko-KR/security-guidance/advisory/CVE-2019-1166 CVE-2019-1230 | Hype...