Java EE 및 일부 오픈 소스 구성 요소 (Spring, Struts 2, jQuery 등)를 사용하여 웹 응용 프로그램을 개발하고 있습니다. 내 웹 페이지 중 일부는 인증 (스프링 보안)이 필요하고 다른 것은 필요하지 않습니다. 일부 REST API (Restlet)를 작성하고 AJAX 호출 (jQuery)에서 내 페이지에서 사용합니다. CORS를 사용 설정하고 내가 원한다면 다른 웹 사이트에서 내 REST API를 사용할 수 없다는 것을 알고 있습니다.브라우저가 아닌 클라이언트의 안전한 REST API
그러나 브라우저가 아닌 클라이언트 (컬, Java 응용 프로그램 등)는 내 REST API를 호출 할 수 있습니다. 어떻게이를 금지 할 수 있습니까? 인증이 필요하지 않아야하는 웹 페이지에서 일부를 사용하기 때문에 모든 REST API에 대해 인증을 사용할 수 없습니다. 일부 API (Facebook SDK와 같은)는 호출을 가능하게하기 위해 애플리케이션 ID가 필요하지만 누군가 내 웹 페이지에 포함 된 자바 스크립트 코드에서 키를 훔칠 수 있다는 것을 알고 있습니다.
두 번째 경우에만 일종의 인증을 적용하기 위해 브라우저 또는 다른 클라이언트 응용 프로그램에서 HTTP 요청을 보낸 경우 서버 측에서 인식하고 싶습니다. 내가 우려하는 것처럼, 모든 클라이언트 응용 프로그램은 HTTP 헤더를 설정할 수 있으므로 HTTP 헤더를 사용할 수 없습니까? 나는 내 문제가 공통적 인 문제라고 생각한다. 그래서 나는 아마도 뭔가를 놓친다.
예, DoS 공격 및 기타 맬웨어에 대해 걱정합니다. 두통없이 모든 API에 적용 할 수있는 간단한 해결책을 찾고 있습니다. –