2010-01-07 7 views
1

재미있는 문제가 있습니다 ... 변경 사항을 프로덕션 환경으로 보내기 전에 webapp에 IBM app 검색 어플라이언스를 통과시켜야합니다. 나의 최근 변경 사항에는 ASP.NET MVC의 AntiForgeryToken이 포함됩니다. 이 테스트를 거친 모든 브라우저가 문제없이 작동합니다. 그러나 어플라이언스가 양식을 제출하려고 시도하면 검증 오류가 발생합니다. 검증 토큰을 보면, 기기는 게시물에 양식 값에 HTML 인코딩을하고있다, 그래서 문자열이 일치하지 않는 ...이 그들이 어떻게 생겼는지입니다 :ASP.NET MVC AntiForgeryToken의 유효성 검사 문제

cmiuJRHizXLPvlu9zHKmTwdJiHvq + n87CSJZkixkf/BLHayCPVITJhRCsWWirPWg - 뽑아 쿠키 에서 cmiuJRHizXLPvlu9zHKmTwdJiHvq % 2Bn87CSJZkixkf % 2FBLHayCPVITJhRCsWWirPWg - 폼 값

그래서 %의 2B로 + 번역이고/% 2F ...이 사람이 전에 본했다합니다? 클라이언트 브라우저에서 이것이 문제가됩니까? 그리고 AntiForgeryToken이 특별한 검사를 통해 내 응용 프로그램을 얻을 수 있도록 특수 문자가없는 문자열을 생성합니까? 감사!

답변

1

MVC 코드를 보면 RNGCryptoServiceProvider를 사용하여 토큰을 만드는 것처럼 보입니다. 흥미롭게도 쿠키 이름 (기본적으로 "+"및 "/"질문에 표시된대로)에 대해 안전하지 않은 문자를 대체하는 방법이 있지만 개인으로 표시되어 사용되는 곳이 표시되지 않습니다.

봉인되었으므로 AntForgeryData 클래스에서 자신의 클래스를 파생시킬 수 없습니다. 귀하의 질문에 대한 분명한 해결책 이었기 때문에 이것은 매우 슬픈 일입니다.

MVC 코드를 기반으로 새 속성을 만들고 안전 방법을 직접 활용할 수 있습니다. 그것은 DRY를 위반할 것이다. 그러나 나는 마이크로 소프트가 그 클래스를 봉인 한 이래로 그 주위에 방법을 보지 못했다.

+0

Microsoft는 MVC 프레임 워크에서 많은 수의 클래스를 봉인했습니다. 나는 항상 그것이 다소 이상하다는 것을 알았다. –

+0

나는 그것을두고 떠나고 싶다. 나는 실제 브라우저에이 문제가 아직 없었지만, ibm 어플라이언스는 비표준적인 구버전을하고있다. – Arthurdent510

관련 문제