>  Q&A  >  본문

새 제목: API 키 보호: 클라이언트 측 JavaScript의 숨겨진 메소드

<p>지금 저는 USPS 가격 계산기 API에 요청하는 클라이언트측 JavaScript 애플리케이션을 작성하고 있습니다. 이 요청을 하려면 요청된 XML에 내 API 사용자 ID를 제공해야 합니다. 태그는 다음과 같습니다: <code><RateV4Request USERID="ThisIsWhereMyUserIdGoes"></code>. 내 질문은: 클라이언트 파일을 보는 사용자에게 숨기면서 JavaScript로 내 사용자 ID를 제공하는 방법이 있습니까? 현재 내 유일한 해결책은 사용자 ID가 포함된 PHP 파일을 서버에 만든 다음 클라이언트 JavaScript에서 AJAX 요청을 사용하여 이를 전역 변수에 저장하는 것입니다. 코드는 다음과 같습니다. </p> <pre class="brush:php;toolbar:false;">var userID; $.get("/secrets.php", 함수( 데이터 ) { 사용자ID = 데이터; });</pre> <p>이 접근 방식은 내 애플리케이션 사용자가 내 API 사용자 ID를 볼 수 없도록 하는 데 충분합니까? 다른 방법이 있나요? </p>
P粉521748211P粉521748211423일 전584

모든 응답(2)나는 대답할 것이다

  • P粉872182023

    P粉8721820232023-08-25 09:30:52

    2020년에 이 페이지를 읽고 있고 어떤 이유로든(호스팅 비용 절감 등) 서버 측 코드를 개발하고 싶지 않다면 서버리스 기능이 솔루션이 될 수 있습니다.

    이는 서버 측에서 타사 API도 호출하지만 전체 서버 측 API 프록시를 개발할 필요는 없습니다.

    Netlify에는 관련 문서가 있습니다. AWS Lambda, Google Cloud Function과 같은 다른 제공업체도 비슷한 기능을 제공하는 것 같지만 확실하지는 않습니다.

    https://github.com/netlify/code-examples/tree/master/function_examples/token-hider

    장점 서버를 관리할 필요가 없습니다

    단점 공급업체 잠금

    회신하다
    0
  • P粉245276769

    P粉2452767692023-08-25 00:22:43

    간단히 말하면, 아니요, 클라이언트 애플리케이션에서는 API 키를 보호할 수 없습니다.

    이 문서에서는 몇 가지 세부 사항을 자세히 설명합니다

    두 가지 옵션:

    • 서버 측에서 API를 호출하고 그곳에서 클라이언트에게 정보를 제공하세요
    • 클라이언트가 자신의 API 키를 사용하도록 요구

    회신하다
    0
  • 취소회신하다