2008-10-28 5 views
5

Tôi không hiểu mã Silverlight hoạt động như thế nào trong trình duyệt. Các assembly có được tải xuống máy khách không? Có bất kỳ cơ hội của mã nhận được decompiled bằng cách sử dụng Reflector hoặc một số công cụ tương tự? Nếu có, tùy chọn nào phải bảo vệ mã? Do. Obfuscators net làm việc với Silverlight?Mã Silverlight có cần bảo vệ không?

Trả lời

5

Để xem ứng dụng Silverlight, ứng dụng tải xuống tệp .xap chứa dll và một cấu hình xml và các tài nguyên tùy chọn. Các dll chứa mã C# biên dịch chạy trong một thời gian chạy Silverlight trong máy khách. Thời gian chạy Silverlight về cơ bản là một tập hợp con của thời gian chạy .net hoàn chỉnh. Vì vậy, điểm là người dùng nhận được mã trong dll và sau đó có thể sử dụng các công cụ để lấy mã nguồn ban đầu. Vì vậy, tối đa bạn có thể làm là obfuscation. Vẫn cho mã rất quan trọng mà không phải là tùy chọn. Bạn có thể sử dụng một số cách khác (WCF hoặc các dịch vụ web khác để ẩn một số phần của mã của bạn có thể) nếu nó phát ra nhu cầu của bạn.

6

Bất cứ khi nào bạn đang ở trong trình duyệt web, tất cả mã phía máy khách đều được tải xuống máy và có thể được người dùng kiểm tra. Điều này cho Javascript, Flash và Silverlight.

Nếu bạn có mã độc quyền hoàn toàn phải được ẩn thì bạn cần phải đặt nó trên máy chủ và hiển thị API mà khách hàng có thể gọi để hiển thị thông tin cho người dùng.

1

Đưa pragma -No Cache- sẽ ngăn không cho .xap được lưu trữ trên máy, thay vào đó plugin sẽ được phát trực tiếp bởi plugin Silverlight. Nếu không có tệp pragma, tệp .xap sẽ được lưu trữ trong các tệp internet tạm thời.

Đưa ứng dụng trên một trang trên https sẽ tiếp tục bảo vệ transmition của .xap

Nếu có thể yêu cầu xác thực để xem các trang web/file .xap (nhờ Joel)

+1

Tin tặc vẫn có thể tải xuống .xap theo cách thủ công để nêu rõ nơi tài nguyên được đặt tại. –

2

Nếu bạn muốn xem việc xem mã trong ứng dụng Silverlight dễ dàng như thế nào chỉ cần chạy SilverlightSpy link text bởi FirstFloor. Miễn là bạn đã cài đặt .NET Reflector, bạn sẽ có thể thấy (khi bạn tương tác với ứng dụng) tất cả mã nguồn bao gồm các tệp xaml.

Vì mã không được tải xuống máy khách (và thậm chí trying to prevent it with pragma no-cache sẽ không hoạt động vì chúng có thể nhấn URL), bạn cần phải bảo vệ mã của mình bằng cách giữ logic quan trọng trên máy chủ.

2

Nếu bạn sợ một số người sẽ ăn cắp tài sản trí tuệ của bạn và luật đó không đủ, thì bạn sẽ cần phải làm xáo trộn mã của bạn. Nhưng tôi sẽ không gọi đó là bảo vệ cho mỗi lời nói mà là ngăn cản các kỹ sư đảo ngược ngẫu nhiên.

1

Emrah,

Có thể áp dụng cho ứng dụng SL.

0

Có, tệp Silverlight xap không có gì ngoài tệp zip với các hội đồng của bạn trong đó, vì vậy chúng cần được bảo vệ thông qua sự làm xáo trộn. Cung cấp cho thử thách Crypto Obfuscator - nó trực tiếp làm xáo trộn các tệp xap, nó cũng có thể làm xáo trộn các tệp XAML trong các hội đồng của bạn bằng cách đổi tên các tham chiếu lớp, loại bỏ các nhận xét, khoảng trắng, dòng mới, v.v.