2013-11-04 12 views
5

Tôi muốn sử dụng phương pháp Flickr API flickr.photos.search trong JavaScript, để tìm kiếm tất cả các hình ảnh của tôi với một từ khóa cụ thể:Có an toàn khi sử dụng khóa API Flickr của tôi trong JavaScript phía máy khách không?

http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key={API_KEY}&user_id=50001188%40N00&tags=fazynet&format=rest 

(Để làm cho nó hoạt động, thay đổi {API_KEY} đến một Flickr hợp lệ Khóa API.)

Câu hỏi của tôi là: Có an toàn khi bao gồm khóa đó trong JavaScript phía máy khách không?

Tôi đã xem một số trang web hướng dẫn thực hiện điều đó, nhưng điều gì sẽ ngăn ai đó sao chép khóa API của họ (hoặc của tôi) và vượt qua giới hạn tốc độ? Tất nhiên, tôi có thể thiết lập một proxy rất đơn giản đang chạy trong Node.js để chèn khóa (thậm chí có thể Apache hoặc Nginx có thể làm điều đó), nhưng đó là một điều nữa để thiết lập và giám sát.

Nếu có giải pháp JavaScript thuần túy, an toàn, tôi sẽ làm điều đó. :)

Note, Tôi hiện đang sử dụng truy vấn này mà không yêu cầu phải xác thực:

http://api.flickr.com/services/feeds/photos_pub[email protected]&tags=fazynet&format=json 

Tuy nhiên, kết quả dường như không còn phản ánh những thay đổi (sau ít nhất một chờ đợi 24 giờ).

+1

Không có cách nào xung quanh nó. Nếu bạn sử dụng nó trong mã phía máy khách, nó sẽ hiển thị cho người dùng cuối và họ có thể sao chép nó vào tập lệnh của riêng họ. Điều tốt nhất bạn có thể làm là làm xáo trộn Javascript của bạn để làm cho nó khó khăn hơn cho họ để có được nó. – Barmar

+2

bản sao có thể có của [Làm thế nào để bảo vệ Khóa API khi sử dụng JavaScript?] (Http://stackoverflow.com/q/11470389/710446) – apsillers

Trả lời

1

Không có phương pháp JavaScript thuần túy để đạt được điều này tôi sợ, bạn sẽ phải tạo tập lệnh phía máy chủ để thực hiện cuộc gọi API và gọi tập lệnh đó thay thế.

+0

Chắc chắn, tôi chưa từng nghĩ về bất kỳ cách nào có thể thực hiện với API Flickr hiện tại (có thể họ có thể thay đổi nó để chỉ cho phép các yêu cầu từ một số miền nhất định, nhưng thậm chí không chắc chắn điều đó có thể). – fazy

+0

Thật không may là không, vì yêu cầu sẽ đến từ trình duyệt của người dùng, vì vậy họ sẽ không biết (hoặc xác nhận) tên miền nào đến từ đó. Thêm vào đó là không thực sự cần bất kỳ điều này. Nhưng câu hỏi hay. – George

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