JS

2012-10-10 3 views
3

을 사용하여 양식 입력으로 CSRF 토큰을 읽지 못하게하는 이유 내가 살펴본 대부분의 프레임 워크는 값을 CSRF 토큰으로 사용하여 숨겨진 입력 요소를 양식에 삽입합니다. 이것은 사용자 Bob이 내 사이트에 로그인하지 못하게하고 Bob이 아직 로그인 한 세션을 사용하여 요청을 실행하도록 내 사이트에 알리는 img 태그 또는 JS를 포함하는 http://badsite.com으로 이동하도록 설계되었습니다.JS

내가 얻지 못하는 것은 badsite.com에서 JS를 멈추게하고 AJAX에서 내 사이트에 양식이있는 URL을 요청하고 숨겨진 입력 요소의 CSRF 토큰을 정규식으로 지정한 다음 AJAX를 사용하여 내 사이트에 게시하는 것입니다. CSRF 토큰이 유효합니까?

JS를 사용하여 실행시 폼에 CSRF 토큰을 삽입하고 쿠키 (badsite.com에 액세스 할 수 없음)의 값을 가져오고 싶습니다. 그러나, 나는이 접근 방법을 언급하지 않았고, 많은 프레임 워크가 CSRF 토큰으로 단순 숨겨진 입력을 수행한다고 들었다. 내 솔루션이 과도하게 설계되어 있는지, 그리고 숨겨진 입력 방법을 안전하게 만드는 부분을 놓치고 있는지 궁금하다. .

누구나 선명도를 제공 할 수 있습니까? 감사! 내 사이트에 양식 URL을 요청 AJAX에서 badsite.com에 JS를 중지 무엇

답변

3

Same Origin Policy (당신이 지나치게 자유 CORS 헤더를 파괴하지 않는 한). 사이트에서 실행중인 JavaScript는 해당 호스트의 허가없이 다른 호스트에서 호스팅되는 사이트의 데이터를 읽을 수 없습니다.

SOP에 대한 해결 방법이 있지만 데이터를 읽는 호스트 (JSON-P, CORS)의 협조가 필요하거나 특정 사용자를 식별하는 데이터를 전달하지 않아야합니다 (승인이 필요한 항목에는 액세스 할 수 없습니다.)