내 Google Maps API 키를 보호하려면 어떻게해야하나요?


96

내 도메인에 대한 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>

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

답변:


92

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

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

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

그래서 :

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

5
"실제"파일을 가져 오기 위해 키를 사용하는 자신의 사이트에서 프록시를 사용할 수 있다고 생각합니다. 전적으로 무의미하지만 가능하다고 생각합니다.
Tim Sylvester

1
내가 뭔가를 놓친 경우를 대비하여 확인할 가치가 있다고 생각했습니다. 답변 해 주신 분들께 건배합니다.
brabster

@ 팀 : 확실하지 않음; 지도를 표시하는 사이트의 도메인 이름을 잽싸게 만드는 경우 JS 코드 자체를 추측하고 있으며 어떤 방식 으로든 키에 포함 된 정보와 비교하는 것이 정상으로 보일 것입니다. 시도하지 마십시오. ;;; @Brabster : :-)
Pascal MARTIN

2
예를 들어 API 키의 대역폭 사용을 보호하려면 중요합니다. 내 솔루션을 확인하십시오.
Ifan 이크발

3
내 앱 (windows / ios / android)에서 사용할 API 키를 가져 오면 어떻게 되나요? 리퍼러를 시뮬레이션하고 귀하의 비용으로 내 목적을 위해이 키를 사용할 수 있습니다!
loki

21

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

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


3
모바일 사용자는 어떻습니까?
Muhammad Umer


15

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

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

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

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


16
나는 또한이 대답이 질문을 다루지 않는다고 생각합니다. 지도 API에는 페이지를 가져 오는 모든 사람이 항상 읽을 수있는 브라우저 측 자바 스크립트가 필요합니다.
데이비드 반 브 링크

-1

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


4
API 키가 브라우저에 도달하면 제 3자가 검색 할 수 있습니다.
Moose on the Loose
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.