2009-09-02 3 views
0

내가 작업하고있는 iPhone 앱에는 제 3 자 사이트의 API에 대한 GET 호출이 필요합니다. 3D 파트 사이트는 SSL을 제공하지 않으며 API 키가 GET 요청의 쿼리 문자열에 있어야합니다. 이것을 보호하는 가장 좋은 방법은 무엇입니까? 내 아이폰 앱이 내 서버와 대화 할 수 있다는 것을 알고 있고 내 서버가 요청을 보내지 만 가능한 경우이를 피하고 싶다. 또 다른 질문은 이것도 큰 문제인 경우입니다. 어쨌든 데이터 만 가져 오는 경우 API 키로 무엇을 할 수 있습니까?타사의 API 키를 숨기시겠습니까?

답변

0

요 전날 Google지도 API 키와 관련하여 similar question에 문의했습니다.

내 전화 허용치를 사용하는 사람에 대해 걱정할만한 가치가 있는지 생각했습니다.

요약은 API가 이러한 방식으로 사용되도록 고안되었으며 API에 대해 할 수있는 일이 많지 않다는 점을 강조했습니다.

API에서 API 키 (Google지도에서 사용)를 사용하여 리퍼러 헤더로 도메인 이름을 사용해야하는 경우 어느 정도 방어벽이 될 것입니다.

2

차원 일부 사이트는 SSL 을 제공하고 API 키를 얻을 요청의 쿼리 문자열에있을 필요하지 않습니다.

보안을 유지할 방법이 없습니다. get 요청은 인터넷을 통해 나가야하며, SSL을 사용하지 않으므로 API 키가 추출됩니다.

에 대한 API 키가 인 것을 해결해야합니다. API 키가 응용 프로그램을 식별하기위한 것이라면이 동작은 문제가 아니므로 걱정할 필요가 없습니다. 귀하 또는 귀하의 컴퓨터를 식별하기위한 것이라면 이는 정상적인 상태가 아닙니다. 타사 사이트에 연락하여 사용자 키를 생성하거나 요구 사항을 피할 수있는 약정을 준비해야합니다.

+0

내 신청서를 확인하는 것입니다. – SonnyBurnette

+0

"API 키가 애플리케이션을 식별하기위한 것이라면이 동작은 문제가 아니므로 걱정할 필요가 없습니다." 다른 사람들이 응용 프로그램으로 포즈를 취할 수 있다면 많은 스팸을 보내고 서버에 과부하를 걸면 응용 프로그램이 금지 될 수 있습니다. 또한 응용 프로그램을 안정적으로 식별하지 못하면 처음부터 API 키의 요점은 무엇입니까? – user102008

4

실제로 장치와 웹 서비스 끝점 사이에 패킷 수신기를 설치할 수 있기 때문에 보안을 유지할 수 없습니다. 단순히 흐르는 바이트를 살펴보십시오. 통신 채널이 암호화되어 있지 않으면 토스트가됩니다.

OWN 프록시 서버를 만드는 방법이 있습니다. 해당 서버는 API 키를 사용하여 엔드 포인트 서비스와 통신합니다. 그러면 기기가 서버와 통신하게됩니다 (원하는 경우 서버와 모든 기기 사이에 채널을 확보 할 수도 있습니다. 모든 기기는 서버에 달려 있습니다).

2

한 가지 제안은 중간에있는 프록시 서비스를 만드는 것입니다. 따라서 앱이 서버를 호출하고 API를 호출하고 서버에서 클라이언트로 릴레이 된 결과를 반환합니다. 이를 통해 API 키를 보호 할 수있을뿐 아니라 향후 투명한 사용을 고려하거나 공급자를 변경할 수 있습니다.

관련 문제