EDIT: Do lỗi trong Java 7 Update 45, bạn không nên thêm Trusted-Library vào tệp kê khai của mình. Chỉ cần thêm thuộc tính mới Caller-Allowable-Codebase. Xem câu hỏi này để biết thêm thông tin: Java applet manifest - Allow all Caller-Allowable-Codebase
Java 7 Update 21 được phát hành vào ngày 16 tháng 4 năm 2013 và khiến applet của chúng tôi bắt đầu hiển thị hộp thoại cảnh báo này.
Mỗi ghi chú phát hành: Kể từ JDK 7u21, mã JavaScript gọi mã trong một applet đặc quyền được coi là hộp hỗn hợp và cảnh báo được nêu ra nếu các tệp JAR đã ký không được gắn thẻ với thuộc tính Trusted-Library.
Để khắc phục điều này, hãy chỉnh sửa tệp kê khai của bạn.Tệp mf và thêm một dòng như sau:
Trusted-Library: true
Bạn nên cẩn thận trước khi thực hiện việc này. Nếu applet đã ký của bạn có thể được gọi từ javascript thì người dùng độc hại có thể làm những việc có hại trên máy tính của người dùng của bạn.
Một cách nhanh chóng để bảo vệ applet của bạn là ngăn không cho nó chạy trên các trang web khác. Làm điều này bằng cách đặt mã trong phương thức init()
xem getCodeBase().getHost()
và ném ngoại lệ nếu nó không khớp với trang web của bạn.
Java 7 Update 25 giới thiệu một cách khác để giới hạn các trang web nơi ứng dụng của bạn có thể chạy. Bạn có thể thiết lập các thuộc tính codebase trong file manifest của bạn như thế này:
Codebase: test.example.com www.example.com
Java 7 Update 45 (releated ngày 16 tháng 10 năm 2013) giới thiệu nhiều thay đổi đối với hệ thống LiveConnect (javascript-to-applet cầu) có thể gây ra dấu nhắc khác . Bài viết này nói về những thay đổi 7u45: https://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45
Về cơ bản bạn cũng sẽ muốn thêm dòng sau vào file manifest của bạn để tránh các hướng dẫn:
Caller-Allowable-Codebase: test.example.com www.example.com
Nếu bạn đang bán một sản phẩm mà bao gồm một applet và bạn không biết tên miền nào có thể được triển khai trên đó, bạn có thể điền * tại đây.
Nguồn
2013-04-18 17:14:09
Thêm mục này để tham khảo trong tương lai. Java 1.6u20 chứa một sửa chữa được ghi lại là "cảnh báo mã hỗn hợp cho class.getResource (" directory/") trong 1.6.0_19". –
Một số nơi trong này phải có một thông báo cho biết những cái lọ hoặc các lớp được xem là "unsigned" Thông điệp là gì? an ninh: Istrusted: null false ?? – simpatico
cho những gì nó có giá trị, vấn đề này đã có cho một máy tính trên 1.6.0_20, sau đó biến mất với 1.6.0_24, bây giờ là trở lại cho 1.6.0_25-b06. Cái quái gì thế !? cả hai lọ của chúng tôi đều được ký với cùng một chứng nhận giống như cách đó cùng một lúc, tôi không hiểu ... – jlarson