2012-05-31 3 views

답변

1

가능합니다.

CSRF 방지는 일반적으로 API가 아닌 다른 웹 사이트에서 액세스하기 때문에 API가 아닌 단순한 웹 사이트에만 적용됩니다. 이러한 종류의 공격을 막는 가장 일반적인 방법 인 숨겨진 빵 부스러기와 토큰은 소모품 API에서 제대로 작동하지 않습니다.

아마도 필요한 것은 훌륭한 기본 인증 메커니즘입니다. CSRF에 취약한 웹 애플리케이션의 주된 약점 중 하나는 쿠키입니다. API에 필요하지 않으면 OAuth 또는 HTTP 다이제스트와 같은 다른 인증 메커니즘을 사용하는 것이 좋습니다. 따라서 외부 사용자는 불쾌한 부스러기 확인없이 API를 안전하게 사용할 수 있습니다.

JS 클라이언트 응용 프로그램에서 HTTP Auth Basic과 OAuth 2.0 모두 가능합니다. OAuth2 데모는 다음과 같습니다 : https://gist.github.com/563893

Twitter는 기본 웹 사이트에서 자체 공개 API를 사용하므로 외부 CSRF를 얼마나 구체적으로 방지 할 수 있는지는 확실하지 않지만이 같은 것이 가능하다는 증거가 있습니다. 모든 요청은 수신자 (여기에 위치 : https://api.twitter.com/receiver.html)에 의해 이루어지며 인증 토큰은 쿠키에 의해 터널됩니다. 아마 그들의 구현을 더 연구 할 필요가있을 것이다.

+0

어떻게 클라이언트에 비밀 키를 저장할 수 있습니까? (내 클라이언트는 브라우저입니다) – vlycser