문제

최근로드 테스트 중에, 나는 "범위 예외에서 인덱스 인덱스"를 얻었습니다.

스택 추적 :

 at System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[]& outputBuffer, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast)
   at System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
   at System.Security.Cryptography.CryptoStream.FlushFinalBlock()
   at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Boolean useValidationSymAlgo)
   at System.Web.UI.Page.DecryptString(String s)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

우리는 농장이나 클러스터를 사용하지 않으며 앱에서 암호화를 사용하지 않습니다.

이것은 뒤에서 .NET 클래스 뒤에서 일어나는 것으로 보입니다.

나는 이것이 ViewState와 관련이 있다고 생각하지만, 이것이 왜 던져지고 있는지 알 수 없습니다.

어떤 아이디어?

도움이 되었습니까?

해결책

누군가가 게시물을 시작하면 응용 프로그램은 500kbs의 viewstate와 함께 게시물을 보내기 시작합니다. Postback을 통해 반쯤, 사용자는 지루해하고 다른 것을 클릭합니다. 브라우저는 ViewState의 일부로 포스트 백을 차단합니다. 서버는 viewstate가 borked라고 표시된 오류를 던졌습니다. ViewState 암호화 기능이 켜져있는 2.0 응용 프로그램 인 것 같습니다. 해결책은 ViewState 크기를보다 적극적으로 관리하는 것입니다.

이벤트 유효성 검사 예외는 악의적 인 사용자가 사용자 지정 포스트 백 응답을 작성하는 경우 발생할 가능성이 높으므로 여기에는 이벤트 유효성 검사가 참여하지 않는다고 생각합니다.

다른 팁

추측 : 사이트에서 이벤트 검사를 비활성화 했습니까? 무언가가 수동 포스트 백을 생성하거나 HTTP 요청의 게시물 데이터에 직접 데이터를 삽입하려고하는 것처럼 들리며 ViewState 필드의 올바른 값은 계산되지 않습니다. 이로 인해 암호 해독이 화려하게 실패합니다.

EventValidation을 켜면 모든 것을 올바르게 계산하더라도 예외가 발생하지만 적어도 의미있는 예외입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top