2012-02-04 5 views
2

REST API를 사용하여 애플리케이션에 PHP 백엔드를 만들고 있습니다.REST API에 대한 액세스 제한

다른 사용자의 스크립트가 내 API에 액세스하지 못하도록하고 싶습니다. 내가 그들을 피하기 위해 $ _SERVER [ 'HTTP_REFERER']를 사용하는 것을 생각했다. 그러나, in what situation does the HTTP_REFERER not work?는, 우리가 그것에 의존하지 않는다고 말한다.

내 클라이언트에만 내 API를 제한하는 다른 방법이 있습니까?

답변

3

그래서 Marcin이 제안한 것처럼 HTTP 기본 인증을 구현할 수 있습니다. 또는 HQarroum이 제안한대로 OAuth를 구현할 수 있습니다. 전자는 훨씬 쉽게 구현할 수 있습니다. HTTP BASIC를 들어, 클라이언트의 요청은 다음과 같이 :

..에 https : // 아이디 : 비밀번호 @ yourbackend.host.com/자원/방법/foo는/바 ..

구현 HTTP 기본 인증은 아주 간단합니다. Apache의 경우 this을 참조하십시오. nginx에 대해서는 this을 참조하십시오.

OAuth에 대해서는 구현이 조금 복잡합니다. OAuth를 살펴보면서 서로 다른 범위의 데이터 (다른 수준의 데이터에 액세스 할 수있는 권한 수준)가 필요하지 않은 경우 두 다리가있는 OAuth 흐름을 구현해야합니다. 그러나 보호 된 리소스의 유일한 소비자 인 경우 OAuth가 과도하다고 생각합니다.

모든 경우에 SSL (https)을 사용하는 것이 좋습니다.

감사합니다,

http://developer.mashery.com

1

OAuth 프로토콜을보고 API를 사용하는 클라이언트에 맞게 구현해야합니다.

1

일반 HTTP 사용자/패스 인증을 사용할 수 있습니다.