파트너가 UI를 표시하고 API를 호출하기 위해 웹 사이트에 포함 할 스크립트 인 "위젯"을 디자인해야합니다.
기본적으로 API 호출에서 제공하는 일부 ID를 기반으로 이러한 사이트에 데이터를 표시합니다. 우리가 피하고 싶은 것은 API를 남용하고이를 사용하여 카탈로그 전체를 긁어내는 것입니다.
스크립트를 포함하는 각 파트너에게는 API를 호출 할 때 제공해야하는 공개 키가 제공됩니다. 스크립트를로드 할 때이 키를 추가하도록 요청하는 것이 좋습니다. 예 :
<script src="//initrode.com/widget/loader.js?key=xxxx"></script>
이렇게하면 스크립트 요청을 사용하여 키 / 소스 IP 쌍을 등록하고 키 / IP 쌍이 등록 된 항목과 일치하는 경우에만 후속 API 호출에 응답 할 수 있습니다 (수명이 제한되어 있고 하루 요청 수 제한).
난독 화를 통한 명백한 보안이기 때문에 좋은 아이디어인지 확실하지 않습니다 (스크립트를 다시로드하면 완전히 무시합니다). 그러나 액세스를 제한하는 다른 방법은 없습니다. 모든 사용자에게 고유 키를 제공 할 수 없으며 파트너에게만 제공 할 수 있습니다. 모든 코드를 누구나 사용할 수 있으므로 개인 키 시스템을 사용할 수 없습니다. 기본적으로 공개 API에 대한 액세스를 제한합니다. 즉, 정의상 모순입니다.
이 솔루션에 대해 어떻게 생각하고 이러한 제약 조건으로 무엇을 하시겠습니까?