2012-08-09 12 views
7

Tiện ích của Chrome được đóng gói để lưu trữ zip. Sau khi cài đặt nó được cài đặt trên thư mục và người dùng có thể truy cập vào nó. Ngoài ra, ông có thể viết lại phần mở rộng và thậm chí nhân bản để mở rộng mới.Cách bảo vệ tiện ích mở rộng chrome

Làm cách nào để bảo vệ tiện ích khỏi sửa đổi và sao chép người dùng? Tôi tìm thấy khả năng cho các tập tin dll (có thể được biên dịch) - nhưng nó không phải là rất tốt đẹp.

Trả lời

5

Tiền đề có vẻ đơn giản. Theo mặc định, trình duyệt diễn giải HTML/Javascript, do đó, các tiện ích mở rộng của Chrome chạy cùng với trang.

Một cách là xáo trộn mã javascript của bạn, hoặc dựa vào plugin NPAPI biên soạn nhị phân, hoặc sử dụng NaCl

+0

Vì vậy: các công cụ làm xáo trộn: http://www.javascriptobfuscator.com/default.aspx và http://stackoverflow.com/questions/194397/how-can-i-obfuscate-javascript – mpz

9

Trong trường hợp bạn có một số mã độc quyền (ví dụ: bản ngã đặc biệt bạn muốn giữ an toàn vv ') và bạn đang nhắm mục tiêu Chrome - tôi khuyên bạn nên sử dụng Native Client. Nacl cho phép bạn chạy mã C/C++ trong trình duyệt của bạn. Nó rất mạnh mẽ và bạn có thể chắc chắn nó sẽ rất khó cho ai đó để chọn vào nhị phân của bạn.

1

Hiện nay không có cách nào bạn có thể ẩn mã nguồn mở rộng Chrome của bạn từ những người dùng hoặc đối thủ cạnh tranh.

Có một tuyên bố trong Chrome web store faq:

Tôi có thể bán phần mở rộng trong cửa hàng? Chưa, nhưng chức năng này sắp ra mắt.

Bạn có thể chờ đợi cho tính năng này hoặc thử các phương thức sau:

  • xáo trộn nguồn Javascript của bạn: Kiểm tra này để biết thêm chi tiết How can I obfuscate (protect) JavaScript?

  • Giữ luận quan trọng của bạn trên một máy chủ từ xa và thực hiện cuộc gọi Ajax từ tập lệnh nền để giao tiếp với máy chủ

mở rộng Chrome được tự do từ 'chính sách cùng một nguồn gốc' nếu phép chéo gốc được định nghĩa trong biểu hiện:

trang web thường xuyên có thể sử dụng đối tượng XMLHttpRequest để gửi và nhận dữ liệu từ máy chủ từ xa, nhưng chúng bị giới hạn bởi chính sách xuất xứ tương tự. Tiện ích mở rộng không quá giới hạn. Tiện ích mở rộng có thể nói chuyện với các máy chủ từ xa bên ngoài nguồn gốc của nó, miễn là máy chủ đầu tiên yêu cầu quyền đối với nguồn gốc chéo .

Xác định sau đây trong biểu hiện của bạn:

{ 
    "name": "your extension", 
    ... 
    "permissions": [ 
     "http://www.yourserver.com/" 
    ], 
    ... 
}