jquery - Mục đích của một khóa API javascript là gì khi nó có thể bị bất kỳ ai xem mã js thấy
Tôi đã thấy các dịch vụ như Google yêu cầu bạn thêm một khóa API khi thực hiện một cuộc gọi javascript, như thế này.
https://www.google.com/jsapi?key=thekeygoeshere
Có ý nghĩa gì khi có khóa API javascript này khi mã có thể bị nhìn thấy và khóa có thể bị đọc. Chẳng phải ai đó có thể chỉ cần sao chép khóa này và sử dụng nó cho trang web của riêng họ sao? Hay là có điều gì khác mà họ làm ở nền để đảm bảo rằng khóa thuộc về trang web đang thực hiện cuộc gọi?
Câu trả lời #1
Có lẽ họ kiểm tra header HTTP referer.
Phần lớn người dùng gửi nó. Vậy nếu là:
- Trang web phù hợp với khóa, họ có thể hoạt động bình thường.
- Một trang web không khớp với khóa, họ có thể từ chối yêu cầu.
- Trống, họ có thể hoạt động bình thường và cho phép một phần nhỏ người dùng sử dụng API trên trang sai.
Phần lớn khách truy cập vào một trang sử dụng khóa sai sẽ bị chặn, vì vậy sẽ không đáng để sử dụng khóa sai trên trang ngay từ đầu.
Câu trả lời #2
Mã Google sẽ sử dụng AJAX hoặc một thứ gì đó tương tự để thực hiện một lời gọi đến máy chủ của họ, chi tiết về khóa của bạn và URL của trang web mà nó đang được sử dụng. Google sau đó có thể kiểm tra xem đó có phải là trang web đúng cho khóa đó và ngăn mã hoạt động nếu không đúng.
Mặc dù vậy, API bản đồ dường như hoạt động trên bất kỳ trang web nào với bất kỳ khóa nào.