2011-02-05 14 views
6

Tôi đã thấy các dịch vụ như Google yêu cầu bạn thêm khóa API khi thực hiện cuộc gọi javascript, như thế này.Điểm của khóa API javascript khi ai có thể xem mã js

https://www.google.com/jsapi?key=thekeygoeshere 

Điểm của khóa api javascript này khi mã có thể được xem và khóa có thể được đọc. Không ai có thể chỉ sao chép khóa này và sử dụng nó cho trang web của riêng họ? Hoặc có cái gì khác mà họ làm trong nền để đảm bảo rằng chìa khóa thuộc về trang web thực hiện cuộc gọi?

Trả lời

6

Có lẽ họ kiểm tra tiêu đề HTTP của người giới thiệu.

Đa số người dùng gửi. Vì vậy, nếu là:

  • Trang web khớp với khóa, chúng có thể hoạt động như bình thường.
  • Trang web không khớp với khóa, họ có thể từ chối yêu cầu.
  • Trống, chúng có thể hoạt động như bình thường và cho phép một phần nhỏ người sử dụng API trên trang web sai.

Phần lớn khách truy cập vào trang web sử dụng khóa sai sẽ bị chặn, vì vậy sẽ không có giá trị khi sử dụng khóa sai trên trang web ngay từ đầu.

+0

Điều đó sẽ khá rủi ro, vì Người giới thiệu-Tiêu đề có thể trống theo tiêu chuẩn (và dành cho nhiều người dùng vì họ không muốn trang web biết họ ở đâu trước đây). – anroesti

+0

Cập nhật câu trả lời giải thích lý do tại sao nó không thực sự nguy hiểm. – Quentin

+0

Đối số này luôn xuất hiện nhưng nếu thậm chí 10% người dùng đã bật (và tôi chắc chắn nó lớn hơn nhiều), bạn sẽ nhận thấy nếu trang web lưu lượng truy cập cao đang sử dụng khóa của bạn. – ZoFreX

0

Mã google sẽ sử dụng AJAX hoặc một cái gì đó tương tự sẽ thực hiện cuộc gọi đến máy chủ của họ nêu chi tiết khóa của bạn và url của trang web đang được sử dụng. Sau đó, Google có thể kiểm tra xem trang web chính xác của nó cho khóa đó và ngừng mã hoạt động nếu không.

Mặc dù, API bản đồ dường như hoạt động trên bất kỳ trang web nào có khóa bất kỳ.

+0

Kể từ v3, API bản đồ không còn yêu cầu khóa (trừ khi bạn đang sử dụng dịch vụ hàng đầu) – Matt

Các vấn đề liên quan