2011-12-20 34 views
21

Tôi đang xây dựng tiện ích mở rộng của Chrome bằng cách sử dụng API web Remember the Milk. Để gọi các phương thức trong API này, tôi cần ký các yêu cầu của mình bằng cách sử dụng khóa API và khóa "bí mật được chia sẻ".Bảo mật trang web Các khóa API trong tiện ích mở rộng của Chrome

Mối quan tâm của tôi là bất kỳ người dùng nào cũng chỉ có thể mở phần mở rộng và rút ra các giá trị này nếu tôi đưa chúng vào tiện ích mở rộng đã xuất bản. Điều này có thể hoặc có thể không gây ra sự gia tăng an ninh cho người dùng, nhưng họ có thể sử dụng/lạm dụng khóa API của tôi và có thể bị thu hồi.

Đây có phải là điều tôi nên quan tâm không? Có bất kỳ phương pháp hay nhất nào để bảo vệ loại thông tin này trong các ứng dụng JavaScript đã xuất bản không?

Trả lời

13

Cuối cùng, bạn không thể che giấu bất kỳ thứ gì trong ứng dụng JS chạy trong trình duyệt; bạn có thể làm xáo trộn hoặc rút gọn mã, điều này sẽ làm sao lãng người dùng bình thường khỏi bị rình mò xung quanh, nhưng cuối cùng, nó luôn có thể lấy bí mật của bạn.

Nếu bạn thực sự cần phải ngăn điều này xảy ra, thì một tùy chọn là chuyển các cuộc gọi từ tiện ích của bạn đến máy chủ bạn có quyền truy cập. Máy chủ của bạn có thể thêm bất kỳ thông số nào cần thiết để ký, chuyển tiếp cuộc gọi đến API có liên quan và chuyển trả lời của API cho người dùng. Tất nhiên điều này thêm các ràng buộc về băng thông/thời gian hoạt động mà bạn có thể không muốn.

+0

Tôi e rằng đây sẽ là giải pháp tốt nhất cho vấn đề này. Viết một dịch vụ web để hỗ trợ một plugin đơn giản, miễn phí chắc chắn là quá mức cần thiết. Một chiến thắng khác cho các ứng dụng gốc được biên soạn ... –

+1

Yup. Về cơ bản, chúng tôi không cho phép xác thực dựa trên JS trên API của chúng tôi vì lý do này. Tất nhiên nó vẫn sẽ có thể cho một người nào đó giả mạo yêu cầu dịch vụ web của bạn ...! – Graham

+5

@JoshEarl Các ứng dụng gốc được biên dịch cũng có các khóa API và có thể sử dụng SSL sniffer như Charles/Fiddler, vv để trích xuất chúng. Trình duyệt JS làm cho nó dễ dàng hơn mặc dù. – mikemaccana

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