문제

그래서 흥미로운 문제가 있습니다 ... WebApp을 제작으로 변경하기 전에 WebApp을 IBM 앱 스캔 어플라이언스를 통과해야합니다. 최신 변경 사항에는 ASP.NET MVC의 antiforgeryToken이 포함됩니다. 내가 이것을 테스트 한 모든 브라우저는 효과가 없습니다. 그러나 어플라이언스가 양식을 제출하려고하면 유효성 검사 오류가 발생합니다. 검증 토큰을 살펴보면 어플라이언스는 게시물의 양식 값에 대한 HTML 인코딩을 수행하므로 문자열이 일치하지 않습니다 ... 이것이 모양입니다.

cmiujrhizxlpvlu9zhkmtwdjihvq+n87csjzkixkf/blhaycpvitjhrcswwirpwg- 쿠키에서 가져 왔습니다 cmiujrhizxlpvlu9zhkmtwdjihvq%2bn87csjzkixkf vublhaycptjhfit

그래서 그것은 +를 %2b로 번역하고 / %2f로 번역하고 있습니다 ... 이전에 이것을 본 사람이 있습니까? 클라이언트 브라우저의 문제입니까? 그리고 antiforgeryToken이 특수 문자가없는 문자열을 생성 하여이 스캔을 통해 앱을 얻을 수 있습니까? 감사!

도움이 되었습니까?

해결책

MVC 코드를 살펴보면 rngcryptoserviceprovider를 사용하여 토큰을 생성하는 것으로 보입니다. 흥미롭게도 그들은 쿠키 이름에 대해 안전하지 않은 문자를 대체하는 메소드 (기본적으로 질문에 표시된대로 "+"및 "/")를 대체하는 메소드가 있지만 개인으로 표시되어 있으며 어디에서 사용되는지 알 수 없습니다.

불행히도 antiforgeryData 클래스에서 봉인되어 있기 때문에 자신의 수업을 도출 할 수 없습니다. 이것은 당신의 질문에 대한 명백한 해결책이기 때문에 매우 슬프다.

MVC 코드를 기반으로 새 속성을 만들고 안전 방법을 직접 활용할 수 있습니다. 마른 건조를 위반하지만 Microsoft가 클래스를 봉인 한 이후로는 그 방법을 보지 못합니다.

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