2010-12-13 47 views
5

Dù sao để mã hóa tiện ích mở rộng của Chrome không hiển thị mã nguồn?Mã hóa tiện ích mở rộng của Chrome?

+1

Bối rối trong một thời gian, cho đến khi tôi nhìn thấy từ các thẻ mà bạn có nghĩa là tiện ích của Chrome :) - bạn nên chỉnh sửa câu hỏi của mình. –

+0

Đã cập nhật cảm ơn. – jprim

Trả lời

8

bạn có thể ẩn mã bằng obfuscator. có rất nhiều sản phẩm có sẵn trên thị trường.

có rất ít công cụ như trình biên dịch Đóng cửa của Google và rất nhiều trình duyệt trực tuyến javascript có sẵn trên thị trường. bạn có thể sử dụng bất kỳ. nhưng nó không đảm bảo tính bảo mật của mã. bất kỳ chuyên gia nào có javascript đều có thể xóa mã đó.

Dưới đây là hai phương pháp: 1. làm cho chức năng của bạn khả dụng thông qua dịch vụ web. mã quan trọng nằm trên máy chủ và phần mở rộng sẽ giao tiếp với máy chủ và sẽ xử lý đầu ra từ máy chủ. 2. sử dụng NPAPI nhưng không phải là phương pháp tốt.

Theo tôi, một chiến lược tốt là cố gắng cung cấp phần mở rộng tốt cho người dùng. nếu đã có một cái gì đó tuyệt vời trong thị trường không có cơ thể sẽ cố gắng để sao chép addon của bạn. cố gắng vượt trội hơn đối thủ cạnh tranh của bạn.

CHỈNH SỬA: NPAPI không được dùng nữa.

+0

Vì Chome cập nhật tất cả bảo mật của chúng trong tệp kê khai v2, hàm 'eval' không còn được sử dụng nữa. Tôi nghĩ vì cách mà các obfuscators làm việc tất cả họ cần eval để bạn không còn có thể bảo vệ mã bằng cách sử dụng phương pháp này. –

+0

@ChristianJuth Obfuscators không phải lúc nào cũng sử dụng 'eval', và thậm chí với v2 nó có thể kích hoạt' unsafe-eval' nếu cần thiết. – Xan

+0

@Xan Tệ của tôi. Tôi đã thay đổi từ ngữ của câu trả lời của tôi một chút. Chỉ cần ra khỏi tò mò bạn có thể gửi một liên kết đến obfuscator mà không sử dụng eval. Tôi tò mò làm thế nào họ làm việc. –

4

vì bạn có thể đọc here bạn không thể. bạn có thể làm cho mã của bạn khó đọc và hiểu, nhưng đó là tất cả.

(câu hỏi khác là ẩn mã javascript trong trang html, nhưng điều đó hầu như giống nhau (theo như tôi biết, tiện ích mở rộng chrome chỉ được viết bằng js/css/html, vui lòng sửa tôi nếu Tôi sai))

+1

Hoặc nó có thể được viết bằng cách sử dụng NPAPI/NaCL/PEPPER :) (C++) –

0
  1. rời Logic mã quan trọng trên máy chủ của bạn (webservices giúp đỡ)
  2. tiêm html nhạy cảm và js vào iframe (việc tạo ra html này có thể được thực hiện tự động)

Nhưng tôi đoán tất cả nắm theo cấu trúc mã của bạn

-1

Với bộ obfuscators biểu hiện v2 khó sử dụng hơn vì eval được coi là lý do bảo mật không an toàn.

Có lẽ một trong những thay đổi lớn nhất trong lược đồ tệp kê khai mới là tiện ích mở rộng không còn có thể sử dụng các kỹ thuật đánh giá kịch bản động như eval() hoặc hàm mới() hoặc chuyển các chuỗi mã JS vào các hàm sẽ gây ra một eval() được sử dụng, như setTimeout(). Ngoài ra, một số thư viện JavaScript được sử dụng phổ biến nhất, chẳng hạn như Google Maps và một số thư viện tạo mẫu nhất định, được biết là sử dụng một số kỹ thuật này.

Nguồn https://developer.chrome.com/extensions/tut_migration_to_manifest_v2#using

Tôi khuyên bạn nên chỉ rút gọn mã. Cách làm việc của minifiers (cho dù chúng không hoạt động hoàn toàn giống nhau) là chúng loại bỏ mọi không gian thay đổi tên biến của bạn thành các chữ cái đơn để giảm ký tự. Điều này loại bỏ rất nhiều ý nghĩa từ mã của bạn và làm cho ut rất khó đọc. Nó không phải là bằng chứng đầy đủ, nhưng nó sẽ thêm thêm bước tẻ nhạt để đọc mã của bạn. Trên đầu trang của minifiers được thiết kế để nén và làm cho mã của bạn chạy nhanh hơn. Bộ khai thác yêu thích của tôi là UglifyJS.

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