2012-02-14 3 views
-1

@ Html.AntiForgeryToken()>을 사용하여 숨겨진 필드에 암호화 된 값을 생성하는 방법에 대해 읽은 Token Verification 방법은 어떻게 작동합니까? 사용자의 브라우저에 세션 쿠키로 저장됩니다.asp.net mvc3

하지만 내 질문은 : - 1. 세션 쿠키의 값도 암호화됩니다, 2. 그래 다음 액션 컨트롤러의 [ValidateAntiforgeryToken]는 두 값의 암호를 해독하고 일치하는 방법을 알고하는 방법 경우 ?

BR은

답변

1

세션 쿠키의 값은 암호화됩니다

예. 이것은 토큰을 나타냅니다. 그리고 그것은 숨겨진 필드에 사용 된 값과 같습니다. 사실 2 가지 일을하는 Html.AntiForgeryToken() 도우미입니다. 토큰을 생성하고 puts가 숨겨진 필드에 렌더링하고 동일한 값을 가진 쿠키도 설정합니다.

그렇다면 액션 컨트롤러의 [ValidateAntiforgeryToken]이 두 값을 해독하고 일치시키는 방법을 알 수있는 방법은 무엇입니까?

기존 WebForms가 ViewState를 암호화/해독하는 데 사용하는 것과 동일한 암호화/암호 해독 알고리즘을 사용합니다. 컴퓨터 키를 기반으로 한 대칭 암호화 알고리즘입니다. 따라서 웹 팜에서 실행중인 경우 모든 노드에서 동일한 시스템 키를 사용해야합니다. 위조 방지 토큰이 웹 팜의 한 노드에서 생성되고 암호화되면 다른 토폴로지에서 해독되지 않을 수 있기 때문입니다 노드는 기계 키가 일치하지 않으면 POST 요청이 전송 될 때 중지됩니다.