2011-11-29 8 views
3

SLIM 프레임 워크를 사용하여 PHP로 API를 설계했습니다. 다음과 같은 API에 액세스 할 수 있습니다.내 API에 안전성을 어떻게 제공 할 수 있습니까?

http://192.168.1.210/getSchool 

이 API는 학교에 대한 정보를 얻는 데 사용됩니다. 내 안드로이드 응용 프로그램에서 이러한 API를 사용하고 있습니다. 이제이 API의 보안을 설정하려고합니다. 아무도 이러한 API에 액세스 할 수 없으므로 주소 표시 줄에 위의 URL을 입력하면 아무도 학교 목록을 볼 수 없습니다.

그 사용자가 내 안드로이드 응용 프로그램을 사용하여 먼저 로그인하면 내 API를 사용할 수 있습니다. 아무도 내 API에서 직접 액세스 할 수 없습니다.

제발 당신의 소중한 제안을 해주십시오.

미리 감사드립니다.

답변

1

사용자가 응용 프로그램에 등록되면 &을 생성하여 데이터베이스에 API 키 (해시 일 가능성이 있음)를 할당하여 전화로 되돌릴 수 있습니다. 전화가 API에 요청을 보낼 때마다 데이터베이스 항목에 대해 유효성을 검사 할 수있는 API 키를 전송합니다.

MITM 공격/API 키보기를 피하려면이 작업을 모두 SSL을 통해 수행해야합니다.

다른 방법도 사용할 수 있습니다 : Looking for suggestions for building a secure REST API within Ruby on Rails (언어 불가지론 자).

+0

를 구현,하지만 당신은 그래서 당신이 나에게 효율적인 방법을 제안 무엇이든지 구현할 수있는 나에게 어떤 예 또는 웹 링크를 보낼 수 있습니다 바랍니다. –

+0

사용할 수있는 다른 방법에 대한 편집 내용과 다음 링크도 참조하십시오. http://stackoverflow.com/questions/7551/best-practices-for-securing-a-rest-api-web-service . 이 작업을 수행하는 방법을 알려주는 실제 문서의 관점에서 볼 때 확실하지 않습니다. – Prisoner

0

사용자가 서버에 등록하고 저장할 때 각 사용자에 대해 UID와 비밀 키를 만들어야합니다. 처음에는 https를 사용하여 사용자에게 전달합니다. 사용자는이 두 값을 저장합니다 (비밀 키가 안전하게 유지되는지 확인하십시오).

사용자가 api 요청을 보내려는 경우 요청 URL을 생성 한 다음 비밀 키 + 타임 스탬프를 사용하여 해시하고 UID, 해시 및 타임 스탬프를 요청에 추가하고 서버로 보냅니다.

서버에서 UID를 추출한 다음 db에서 비밀을 가져온 다음 비밀 키 + 타임 스탬프 param을 사용하여 요청의 해시 (UID, 해시 및 타임 스탬프없이)를 생성합니다.

생성 된 해시와 url 일치의 해시 매개 변수가 요청을 처리하거나 무시하는 경우

또는

난 당신이 바로 죄수 생각 OAuth

관련 문제