2014-12-05 4 views
1

JSON API를 사용하여 웹 사이트의 데이터를 가져옵니다. 나는 그것을 안전하게 할 수있는 다양한 방법을 알고 있지만 나의 상황은 일반적인 방법과 다릅니다.PHP - RESTful API 요청 보호

도메인 간 문제로 인해 RESTful API에 대한 cURL 요청을 수행하는 다양한 PHP 파일이 포함 된 API 폴더를 만들어야했습니다. 그런 다음 내 사이트에서 AJAX를 통해 이러한 로컬 PHP 파일을 요청합니다. 다음 릴리스에서이 문제를 방지하려면 JSONP 여야합니다.

많은 JSON 요청에는 중요한 정보가 포함되어있어서 내가 한 첫 번째 일은 HTTP Referrer를 확인하여 사람들이 JavaScript 코드를 검사하고 브라우저에서 실행하려고 할 때 URL을 가져 오는 것이 아니라는 것입니다. 분명히 안전하지도 않고 신뢰하지 않아도됩니다.

요청에 게시하려고 시도 할 수있는 모든 데이터는 자바 스크립트를 통해 전달되므로 API 키 또는 토큰과 같은 것이 표시되어 전체 목적을 무효화합니다.

이러한 PHP 파일이 웹 사이트 또는 그 밖에서 실행되는 것을 막을 수있는 방법이 있습니까? 기본적으로 방문객을위한 비참함으로 만드시겠습니까?

+0

세션을 사용하고 쿠키가 필요합니다. 해결책일까요? –

+0

PHP sesisons이 도움이되는지 확인하려고합니다. 이미 로그인 한 사용자에게 고유 한 요청에 3 개의 쿠키를 보냅니다. 따라서 사용자가 로그인 한 경우 API URL을 성공적으로 실행할 수 있습니다. 아니면 다른 쿠키에 대해 이야기하고 있습니까? – jstudios

+1

사용자가 로그인했음을 증명하는 세션 쿠키에 대해 이야기하고 있습니다. –

답변

0

이렇게해도 REST에서는 아무 것도 할 필요가 없습니다. cURL로 REST 서비스를 호출하고 브라우저가이 프로세스를 볼 수없는 서버 측 REST 클라이언트가 있습니다. 이 AJAX 클라이언트에 대한 자체 REST 서비스를 만들고 싶지 않을 때까지는 브라우저와 AJAX 클라이언트의 관점에서 보았을 때 일반적인 웹 애플리케이션 일뿐입니다. 로렌츠 (Lorenz)가 논평에서 말했듯이, 평상시처럼 세션을 사용해야합니다. 그게 다야. 특정 페이지에 대한 액세스를 제한하려는 경우 액세스 제어 솔루션을 사용할 수 있습니다 (예 : 역할 기반 액세스 제어는 매우 보편적입니다.