2010-11-19 4 views
0

저는 JApplet을 사용하여 Java로 작게 작업하고 있습니다. 최고 기록 및 업적을 구현하고 싶습니다.GoogleAppEngine Java WebService 보안

전용 서버가 없으므로 플레이어 데이터 저장 및 최고 기록 및 업적 달성을 위해 GoogleAppEngine을 사용하기로 결정했습니다. GoogleAppEngine에서 웹 서비스를 만드는 방법을 이미 알아 냈지만 보안에 관한 질문이 있습니다 ...

소문에없는 사람들이 내 WS에 전화하는 것을 원하지 않습니다. 구현할 수있는 보안의 종류 다른 사람들이이 WS를 사용하는 것을 막고, 권한이 부여 된 클라이언트 (내 애플릿) 만 게시 할 수 있습니다.

내 애플릿은 아마도 내 개인 웹 페이지에서 호스팅되며 WS는 GoogleAppEngine에서 실행될 것입니다.

미리 감사드립니다. Serhiy.

답변

0

사람들이 GAE 앱을 직접 치지 않을 것이므로 Google 로그인과 사용자 서비스는별로 효과적이지 않을 수 있습니다. 따라서 더 일반적인 보안을 바라 볼 수 있습니다.

애플릿의 개인 키로 모든 요청에 ​​서명하고 GAE의 공개 키를 사용하여이를 확인하는 한 가지 방법이 있습니다. 이 방법의 문제는 당신이 (나는 추측하고있는) 애플릿에 개인 키를 보관해야 할 필요가있다는 것을 역 설계하고 도난 당할 수 있다는 것이다.

애플릿에 대한 교차 도메인 보안 제한을 사용하여 탐색 할 수도 있습니다. 애플릿을 원래 서버로 되돌려 놓고 해당 서버가 서명 된 요청으로 GAE와 통신하게하십시오.

호스트 도메인에서 발생한 요청 만 수락하여 HTTP_REFERER 기반 보안을 사용할 수도 있습니다.

+0

감사합니다. 프로그램에 키를 harcode 한 다음 매 릴리스 후에 키를 변경하는 것이 좋습니다. – Serhiy

+0

당신이 안전하게 프로그램에 하드 코드를 관리한다면 (도난 당할 수없는 방식으로) 그러면 전혀 변경하지 않아도됩니다 ... 만약 내가 쉽게 도난 당할 수 있다면, 어쨌든 그것을하는 것은 아무런 의미가 없습니다 : –

+0

@Serhiy 그것은 좋은 습관은 아니지만, 당신이 원하는 것을 성취 할 수있는 유일한 방법입니다 .Sudhir가 제안한 것처럼 공개 키 암호를 사용할 필요가 없습니다. HMAC는 잘 할 것입니다. –

관련 문제