2013-08-20 2 views
0

Google App Engine에서 실행되는 웹 응용 프로그램을 개발 중입니다. 그것은 데이터를 요청하는 몇 가지 HTTP GET 메서드가 있습니다. 임의의 웹 요청이 서버에서 데이터를 수신 할 수 없도록하고 싶습니다. 내 웹 앱 (즉, 내 웹 사이트에서 발생한 요청)과 내가 개발 한 모바일 또는 데스크톱 클라이언트 만 서버에서 데이터를 요청할 수 있어야합니다. 어떻게 이뤄지나요? 참고 여기에 사용자 이름/암호 인증에 대한 이야기가 아닙니다. 요청을하는 클라이언트 응용 프로그램이 권한이 있는지 확인하는 방법을 묻습니다. 그렇지 않으면 누구나 클라이언트 (예 : C# 콘솔 앱)를 만들고 내 데이터를 사용할 수 있습니다. 나는 그 질문이 이것과 비슷하다고 생각한다 : How to authenticate client application for trust of messages sent from it서버가 어떻게 클라이언트를 인증 할 수 있습니까?

답변

0

짧은 대답은 할 수 없다.

https://security.stackexchange.com/questions/826/how-can-i-securely-authenticate-the-client-application-sending-me-data

긴 대답은 해커 어렵게 만들 수있다. 일반적으로 이것은 응용 프로그램에 키를 포함시키고, 모호하게 만들고, 키를 얻기위한 코드를 난독 화하여 작동합니다. 누군가가 키를 찾을 수 없도록 만들지는 않습니다. http://www.iis.net/learn/media/iis-media-services/content-protection-in-silverlight

0

당신은 3scale 사용할 수 있습니다 거기 강한 소비자 시스템의

하나는 마이크로 소프트의 실버 라이트 DRM, 당신은 그 일이 어떻게 조사 할 수있다. 그것은 인증, 통계, 당신의 GAE 응용 프로그램

https://code.google.com/p/appspotimage/wiki/APICreationArticle

+0

잘못된 것이 아니라면 3scale은 키를 제공하지만 요청 헤더의 모든 사용자가 볼 수 있으며 도난 당할 수 있습니다. 이 올바른지? 이는 Google Maps API를 사용하는 데 필요한 키와 유사합니다. 이러한 키의 목적은 주로 추적 및 계측입니다. 물론, 키를 전혀 요구하지 않고 보안 수준을 제공합니다. – morpheus

0

암호화 클라이언트를 통해 요청에 만든 요청의 제어 기능을 제공합니다. 서버 수준에서 해독합니다. 암호 해독이 성공적이며 요청이 올바른 형식이면 권한이 부여됩니다.

그렇지 않으면 인증되지 않은 클라이언트입니다.

캐치?

누군가가 귀하의 암호화 방법을 해결 한 후에 인증되지 않은 클라이언트를 만들 수 있습니다. 이것은 프로그램을 디 컴파일하고 난독 화 된 코드를 통해 터벅 터벅 걸 으면서 어렵게 만들거나 시간이 오래 걸릴 가능성이 높지만 여전히 가능합니다.

관련 문제