내 Google Maps API 키를 보호하려면 어떻게해야하나요? 보여줍니다. 예를 들면 다음과

내 도메인에 대한 Google Maps API 키를 얻었습니다.

키를 얻을 때 제공된 예제는 요청 매개 변수에 포함 된 키를 보여줍니다. 예를 들면 다음과 같습니다.

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true_or_false&amp;key=my-key" type="text/javascript"></script>

요청의 리퍼러 필드가 내 도메인과 일치해야한다는 점에 감사드립니다. 스크립트 태그 등에 내 키를 표시하는 것이 안전합니까? 아니면 내가 취해야 할 다른 조치가 있습니까?



답변

이 키가 <script>HTML 페이지 의 태그에 포함되어야한다는 점을 고려하면 Google 서버에서 JS 파일 / 데이터를로드하려면 할 수있는 작업이 없습니다.

  • HTML 파일에 넣어야합니다.
  • 모두가 그것을 볼 수 있습니다.

그래도 문제가되지 않습니다. 누군가 귀하의 도메인이 아닌 다른 도메인에서이 키를 사용하려고하면 Javascript 경고가 표시됩니다. 이는 사용자에게 좋지 않습니다.

그래서 :

  • 당신이 할 수있는 일은 없습니다. 이것이 작동하는 방식입니다
  • 그리고 당신이 걱정할 것이 많지 않다고 말하고 싶습니다.


답변

Google API 콘솔에는 다른 도메인 / 사용자가 API 대역폭 사용을 사용하지 못하도록 보호 할 수있는 설정이 있습니다. API 콘솔에서 리퍼러를 사용하여이를 제한하고 보호 할 수 있습니다. API 키는 제한과 일치하는 리퍼러가없는 요청을 거부합니다.

다음은 두 도메인에서 Google에서만 사용할 수있는 API 키용 Google의 스크린 샷입니다.
여기에 이미지 설명 입력


답변

이 질문은 몇 년 전이지만 아주 좋은 질문입니다. 내가 이해했듯이 API 키가 도메인과 일치하더라도 노출되면 여전히 남용으로 이어질 수 있습니다. 여기에 더 자세히 다루는 Security Stack Exchange 에 대한 게시물 이 있습니다.

잠재적 인 악용을 방지하기 위해 취할 수있는 조치는 Google에 의해 여기에 게시되었습니다.

API를 안전하게 사용하기위한 모범 사례 가이드 :
https://support.google.com/cloud/answer/6310037?hl=ko

모든 것을 기내에 가져가는 것이 좋지만 Brabster가 게시 한 특정 예제를 처리하는 접근 방식이 있으며 환경 변수에 키를 저장하는 것입니다 . 이렇게하면 프로젝트 내에 저장된 서버 측 변수를 키로 대체하기 만하면됩니다. 그러나 키를 저장하는 파일을 공용 리포지토리에 커밋하지 마십시오.


답변

키를 보호하고 처리하려면 백엔드 / 서버 측을 사용해야합니다. 제 경우에는 서버 스크립트 / db에서 키를 가져 와서 Google API에 전달하기 위해 ajax 호출을 제공 할 수있는 Django f / w 서버 측을 사용했습니다.


답변