2012-10-21 3 views
0

시나리오는 다음과 같습니다 자바 스크립트 클라이언트 인증 (OAuth2없이 SSL 사용)?

내가 두 클라이언트에 의해 액세스되는 웹 API를 가지고 :
  • iOS 앱
  • 을 축소 된입니다 자바 스크립트로 작성

    • 웹 응용 프로그램, SSL은 API를 호스팅하는 서버에서 모두 설정되며 정상적으로 작동합니다. 일종의 위치 기반 검색 앱이기 때문에 API에 대한 User Auth가 없습니다.

      는 난 단지 웹 응용 프로그램 및 아이폰 클라이언트가 실제로 API에 요청을 할 수 있는지하지만 확인합니다. iPhone 클라이언트의 경우 서버와 앱 사이의 공유 비밀이 가능하며 SSL로 암호화되어 있기 때문에 사람들이 염탐하는 것에 대해 걱정할 필요가 없습니다.

      하지만 웹 앱의 경우 동일한 해결책이 작동하지 않습니다. 코드에 문자열을 남겨 둘 수는 없으며 암호화되어 있어도 모든 사람이 필요합니다.

      기본적으로이 문제에 대한 좋은 해결책을 찾고 있습니다. 난 그저 그것을 사용할 수있는 클라이언트에 보관되어 있는지 확인하고 싶지만, 아마도 내가 지나친 것 같아 OAuth를 구현하고 구현하지 않고 어떻게 할 수 있는지 모르겠습니다. 어떤 아이디어?

      감사합니다. 댄

    답변

    2

    는 그것은 할 수 없습니다. 심지어 oauth. iOS 앱이 안전하다고 가정해도 잘못되었습니다. 즉, 디 컴파일 할 수 있습니다. 클라이언트에서 실행되는 모든 코드는 변조 될 수 있으며 자신이 말하는 사람으로 신뢰할 수 없습니다.

    만 질문 : 당신은 충분히 가치가 제공하는 API이며, 얼마나 많은 문제 누군가가 해킹을 통해 가고 싶은 것입니다. 그리고 누구든지 그것을 해킹하고 싶어하는 당신을 위해 얼마나 열심히하고 싶습니까?

    아이폰 OS 버전은 실제로 자바 스크립트 버전보다 훨씬 안전합니다. webapp에서는 해킹하기가 더 어렵도록 코드를 난처하게 할 수 있습니다. (iOS에서 사용하지 않으려는 경우) 서명 코드를 숨기려면 자바 또는 플래시를 사용하고 (HMAC- 요청에 서명하고 공유 비밀을 보내지 말고 SSL이 안전하다고 생각할 수 있습니다. 하지만 URL이 암호화되기 전에 잠시 있습니다 ....).

    방법이와 "큰 사람"거래는 다음과 같습니다 (같이 : 당신이 의도 한 것보다 다른 목적을 위해 귀하의 API를 사용) 빌드 무엇이든

    • 가, 누군가가 해킹 할 수 있다고 가정 .
    • 이 정말 얼마나 나쁜에 대한 생각 (참고 : 그들이에 사업 기반을 구축 할 수 없을 것, 그것은 소송에 너무 취약 할 것이다). 고독한 늑대가 API를 사용한다면 실제로 세상의 끝인가?
    • 고독한 이슬람인을 돌보는 경우 가능한 한 어렵게 만드십시오. (솔직히 고독한 이슬람 성직자로부터 돈을 풀어내는 것이 개발자의 달에 2 달을 보내는 것보다 쌉니다.)
    • API에 해킹하는 것에 심각한 관심이있는 경우 해커들과 이해를 도모하십시오 (예 : Spotify가 혐오스럽게 반응 한 방식이 마음에 들었습니다.) 기본적으로 그들은 "어이, 우리는) "당신에게 차단
    +0

    좋은 조언을 너무 열심히 시도하지 않을 것이다 우리의 음악을 훔치거나 우리의 사업 모형을 회피하기 정말 쉽습니다.고마워, 클로드 :) 나는 전에 스스로 API를 작성한 적이 없다. 나는 이것을 명심 할 것이다. 최선의 방법은 같은 IP가 10 초마다 몇 가지 요청 이상을 보내는 것을 막는 것과 같은 기본적인 스팸 방지 대책을 세우는 것입니다. – basicallydan

    관련 문제