Đừng tin tưởng trình duyệt, hãy thực hiện các bước để xác thực người dùng thay thế. Vì vậy, trong trường hợp này, bạn có thể yêu cầu bạn nhập vào một mật khẩu được sử dụng để giao tiếp với máy chủ của bạn.
Tiện ích Google của bạn sẽ đơn giản yêu cầu bạn nhập mật khẩu trước khi nó cố gắng sử dụng AJAX để liên lạc với máy chủ của bạn.
Hãy lưu ý rằng bạn nên xây dựng bằng phương tiện bảo vệ bản thân khỏi các cuộc tấn công bạo lực. Vì vậy, hãy làm những việc như khóa mọi thứ xuống nếu có nhiều hơn một số mật khẩu sai, v.v.
Bạn cũng có thể xem xét sử dụng mật khẩu để giải mã đích đến của XHR, nhưng nếu bạn đi tuyến đường này, bạn nên lưu trữ này rất cẩn thận, bởi vì điều này sẽ được brute-buộc phải ẩn.
EDIT Đang cố gắng để khóa xuống một API để chỉ một ứng dụng duy nhất có thể sử dụng nó chỉ là không thực tế cũng không thể về mặt kỹ thuật, vì vậy bạn chỉ có hy vọng để làm điều này là để xác thực người dùng bằng cách sử dụng API, không phân biệt của phần mềm truy cập anh đang sử dụng. Bạn có thể yêu cầu người dùng ký một thỏa thuận giới hạn hợp pháp họ chỉ với phần mở rộng của bạn, nhưng tôi nghi ngờ điều này sẽ phần lớn không thể thực hiện được và sẽ tiêu tốn thời gian của bạn theo dõi những kẻ lạm dụng.
Nếu bạn không muốn những người không được phép biết ngay cả API, bạn có thể thực hiện xác thực bằng cơ chế ngoài băng tần: qua điện thoại, email, SMS hoặc đơn giản, một API khác sẽ cấp cho người dùng mật khẩu hoặc mã thông báo yêu cầu API của bạn phải đi kèm.
Trong quá trình ngoài băng này, bạn cũng có thể cấp cho người dùng, một URI duy nhất (điểm truy cập API) chỉ hợp lệ cho mỗi phiên được xác thực (ví dụ: https://api.totally-cool-extension.com/api/ijyeDvB5dYvSiWG97OLuTAoNWwbhuZ0/). Mọi yêu cầu đối với máy chủ của bạn trên các URI KHÁC chỉ đơn giản là không hoạt động. Tuy nhiên, điều này không khác biệt về mặt lý thuyết so với việc sử dụng cùng một điểm truy cập API và có mật khẩu tốt. Nó chỉ thay đổi số lượng địa điểm trong kiến trúc của bạn sẽ thực hiện kiểm tra xác thực và/hoặc ủy quyền.
<aside>
Bỏ phiếu của tôi sẽ giảm số lượng điểm ủy quyền/xác thực càng ít càng tốt để bạn có thể dành nhiều thời gian hơn để nhận một địa điểm đó đúng hơn là có nhiều địa điểm và có thể có nhiều lỗi logic hoặc những thứ khác có thể dẫn đến lỗ hổng bảo mật. </aside>
Bạn cũng có thể khám phá bằng cách sử dụng cơ sở hạ tầng khóa công khai và/hoặc chương trình mật khẩu một lần hoặc máy phát thẻ mã thông báo trên thiết bị, v.v. Và, nhờ vào Internet, điều này sẽ không còn là một URI không được tiết lộ lâu nữa.
Và quan trọng hơn, nó sẽ không ngăn người khác sử dụng dữ liệu. Ngay cả với tất cả các biện pháp này tại chỗ, nó sẽ là tầm thường đối với người dùng được ủy quyền để thu thập dữ liệu này khi dữ liệu đang được truyền đến tiện ích mở rộng của bạn. Hoặc, nếu bạn sử dụng mã hóa điểm-điểm, họ có thể sàng lọc màn hình hoặc sử dụng một số hình thức nội tâm JS trên chính mã của bạn hoặc thậm chí trích xuất dữ liệu từ bộ nhớ máy tính của họ.
Tôi biết bạn đang tìm kiếm một viên đạn bạc ở đây, nhưng nó không tồn tại.
Bạn hiển thị api công khai trong tiện ích mở rộng chrome - và bạn không muốn người dùng khác của tiện ích mở rộng sử dụng tiện ích đó? Ý nghĩa của api là gì? – madflow
bạn có thể xác định người dùng của mình bằng cách sử dụng api xác thực google chrome và lưu trữ một số nội dung trên mặt của bạn để đảm bảo người dùng có quyền. Xem tài liệu google này; http://developer.chrome.com/apps/app_identity.html – happy
@madflow, nếu tôi muốn api của mình chỉ được sử dụng bởi những người được ủy quyền, không có ý nghĩa gì trong đó? – dav