2014-12-30 1 views
1

엔드 포인트가있는 Android 용 샘플 앱을 시험하고 있습니다. 내가 아는 한 Google은 Google 앱 엔진의 각 메소드에 대한 인증 (아래 코드)을 구현해야합니다.앱 엔진에 대한 승인을 구현하는 이유는 무엇입니까?

/** 
* Provides the ability to insert a new Score entity. 
*/ 
@ApiMethod(name = "scores.insert") 
public Score insert(Score score, User user) throws OAuthRequestException, IOException { 
    ... 
} 

내가이 종류의 인증에 대한 인증을 구현하지 않으면 누구나 내 백엔드 앱을 망칠 수 있습니까? 데이터 저장소에 액세스하여 데이터베이스를 보거나 쿼리를 통해 데이터 스토어에 저장된 정보에 액세스 할 수 있습니까? 어떤 종류의 보안 결함이 발생합니까? 인증을 구현해야하는 방법을 이해할 수 있도록

또 하나의 포인트는, 내 생각, 내가 필요하지 않은 Index.html 것입니다. 앱 엔진이 자동으로 생성하지만 Android에서만이 앱을 실행하고 싶습니다. 삭제할 수 있습니까, 아니면 삭제해도됩니까? 당신은 사용자를 식별해야하는 경우

답변

0

당신은 방법의 매개 변수 목록에 User PARAM를 추가해야합니다. 메서드의 논리가 모든 사용자에 대해 동일한 결과를 반환하면 사용자 인증이 필요하지 않지만 모든 사용자가 모든 인증없이 메서드를 호출 할 수 있습니다.

당신이 당신의 엔드 포인트를 설계하는 경우 데이터베이스 또는 쿼리 데이터베이스에 액세스 할 수는 없습니다. 끝점 메서드에서 반환되는 내용을 제한하십시오.

또 하나의 요점은 Index.html입니다. 제 생각에는 필요 없습니다. 앱 엔진 이 자동으로 생성되지만 Android에서만이 앱을 실행하고 싶습니다. 삭제할 수 있습니까, 아니면 삭제해도됩니까?

여전히 컴파일하고 왜 안 백엔드에서 실행되는 경우. index.html은 브라우저에서 앱을 열 때 표시됩니다. https://appname.appspot.com. 아무것도 표시하고 싶지 않으면 항상 빈 파일을 제공 할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 그리고 서블릿은 BLOB 업로드 URL을 얻는 것을 좋아합니까? 웹 브라우저와 링크로 활성화 할 수 있기 때문입니다. 보안 문제입니까? – savante

+0

브라우저 또는 컬 또는 wget 유틸리티를 사용하여 모든 엔드 포인트 메소드를 호출 할 수도 있습니다. 당신이 그것을 잘 디자인한다면 전혀 보안 문제가 아닙니다. 예를 들어 앱 내에서 프리미엄 콘텐츠를 다운로드하는 경우 다음과 같이 구현할 수 있습니다. 프리미엄 리소스에 대한 고유 식별자를 얻기 위해 엔드 포인트 메서드 호출 (oauth protected), 사용자가 콘텐츠를 다운로드 할 수있는 권한이 있는지 확인한 다음 이 식별자. 이렇게하면 자격이있는 사용자 만 프리미엄 콘텐츠를 다운로드 할 수 있습니다. – tomrozb

관련 문제