2010-04-09 11 views
13

İmzalı Java uygulamam Java güncellemesi 19'a kadar çalışıyor. Artık Java Güncellemesi 19'daki tüm kullanıcılarımızın bir kısmı değil, tüm kullanıcılarımızda hem imzalı hem de imzasız kod içerdiğini bildiren bir java güvenlik mesajı var.Java neden uygulamamın hem imzalı hem de imzasız kod içerdiğini söylüyor?

  1. Temiz ve NetBeans IDE uygulaması projesi oluşturun şu şekildedir:

    bizim uygulamasını oluşturmak için bir süreçtir.

  2. WinRAR'daki Applet jar dosyasını açın ve gerekli mysql JDBC sürücüsü .class dosyalarını jar dosyasına ekleyin.
  3. Applet jar dosyasını imzalayın.

Birisi, hangi kodun imzalandığını ve uygulamamızda hangi kodun imzalanmadığını nasıl belirleyebileceğimi söyleyebilir mi? Bizim applet kavanoz dosya içeriğini jar dosyası içeriğini kopyalamak dışında bizim applet mysql JDBC sürücü jar dosyası eklemek için daha iyi bir yolu var mı?

Teşekkür

cevap

11

bazı şeyler: java eklentisi kontrol paneline

  • Git ($ java_home/bin/ControlPanel).
  • Advanced sekmesine gidin.
  • Kontrol Enable tracing, Enable loggingDebug
  • genişletin ve Show applet lifecycle exceptions
  • Java console
  • Kontrol Show console
  • tıklayın OK (veya Close, işletim sisteminize bağlı olarak)

sizin uygulaması yüklediğinde Expand Java konsolu açılacak. Üzerine tıklayın ve hemen '5'e basın. Uygulamanızı çalıştırmak için getirilen kavanozları ve sınıfları günlüğe kaydeder. Bunun bir yerinde, kavanozların veya sınıfların "imzasız" olarak ne düşündüklerini gösteren bir mesaj bulunmalıdır. İlk kez özlediyseniz, tekrar denemek için sadece pencereyi yeniden yükleyin.

+1

Gelecekte başvurmak için bu ekleme. Java 1.6u20, "1.6.0_19'da" class.getResource ("dizin /") için karışık kod uyarısı olarak belgelenen bir düzeltme içerir. –

+2

Bazı yerlerde, hangi kavanozların veya sınıfların "imzasız" olarak kabul edildiğini belirten bir mesaj olmalıdır. Mesaj nedir? güvenlik: Istrusted: null false? – simpatico

+1

değerinde, bu sorun 1.6.0_20'de bir makine için vardı, daha sonra 1.6.0_24 ile gitti, şimdi 1.6.0_25-b06'ya geri döndü. Ne halt Sun ?! Her iki kavanozumuz da aynı şekilde aynı sertifikayla imzalandı, ben onu anlamıyorum ... – jlarson

2

güvenilen ve güvenilmeyen kod birlikte 6u19 sabit olan bir güvenlik açığı (yazma anda mevcut CPU/SSR sürüm) ile karıştırılmalıdır. See the docs. Karışımı engellemek veya bir hata ayıklayıcısını kullanarak sorunun nerede olduğunu göstermesi gerekir. denemek için

+1

yarar: Trusted-Library: true – simpatico

+3

@simpatico Ne yaptığınızı biliyorsanız, kullanışlıdır. Yapmazsan tehlikeli davranmak. –

14

DÜZENLEME: Java 7 Güncelleştirmesi 45'teki bir hata nedeniyle, Bildiri Dosyanıza Güvenilen Kitaplık eklememelisiniz. Sadece yeni nitelik Caller-Allowable-Codebase ekleyin. Daha fazla bilgi için şu soruya bakın: Java applet manifest - Allow all Caller-Allowable-Codebase

Java 7 Güncelleştirme 21, 16 Nisan 2013'te piyasaya sürüldü ve uygulamamıza bu uyarı iletişim kutusunu göstermeye başlamadı.

Sürüm notları için: JDK 7u21'den itibaren, ayrıcalıklı bir uygulama içindeki kodu çağıran JavaScript kodu karışık kod olarak kabul edilir ve imzalı JAR dosyaları Güvenilen Kitaplık özniteliği ile etiketlenmediyse uyarı iletişim kutuları oluşturulur.

Bunu düzeltmek için bildiriminizi düzenleyin.mf dosyası ve bunun gibi bir satır ekleyin:

Trusted-Library: true 

Gerçi bunu yapmadan önce çok dikkatli olmalıdır. İmzalı uygulamanız javascript'ten çağrılabiliyorsa, kötü niyetli bir kullanıcı, kullanıcılarınızın bilgisayarlarında potansiyel olarak zararlı şeyler yapabilir.

Uygulamanızı güvenli hale getirmenin hızlı bir yolu, diğer web sitelerinde çalıştırılmasını engellemektir. Bunu, getCodeBase().getHost()'da görünen init() yöntemine kod koyarak yapın ve sitenizle eşleşmezse bir istisna atar.

Java 7 Güncelleştirme 25, uygulamanızın çalıştırılabileceği siteleri sınırlamanın başka bir yolunu sunar. Böyle Manifest'inizde dosyasında kod temeli özniteliği ayarlayabilirsiniz:

Codebase: test.example.com www.example.com 

Java 7 Güncelleme 45 başka istemi neden olabilir LiveConnect sistemine daha fazla değişiklik (javascript-to-applet köprü) tanıtır (2013 Ekim 16 releated) . 7u45 değişiklikleri ile ilgili bu madde görüşmeler: https://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45

Temelde da istemleri önlemek için manifest dosyasında aşağıdaki eklemek isteyeceksiniz: Bir uygulamasını içeren bir ürün satıyorsanız

Caller-Allowable-Codebase: test.example.com www.example.com 

ve Hangi bölgelerde konuşlandırılabileceğini bilmiyorsunuz * burada doldurun.

+0

İmzalı bir java uygulaması içeren paketlenmiş bir yazılım satıyorsanız, bu, artık uygulamanızın Arayan-izin verilen-codebase segmentinde çalışabildiği her alanı içermeniz gerektiği anlamına mı geliyor? Paketlenmiş bir yazılım ortamında, müşterinizin uygulamanızı çalıştıracağı alanı bile bilmiyor olabilirsiniz? – muzzamo

+0

Evet, sanırım uygulamada Arayan-İzin Verilebilir Kod Koduna sahip olmanız ve bu alanları içermesi gerekiyor. Bu delilik. Çalışmak için düşünebildiğim birkaç şey: Java uygulamasında javascript'i çalıştırabilirsiniz ve bununla ilgili kısıtlamalar görmedim. Kodunuzu yeniden çalıştırabilirsiniz, böylece JS-Java etkileşimleri uygulama içinden başlatılır. Diğer seçenek, uygulama sürecinin bir parçası olarak doğru etki alanları ile uygulama JAR'ının oluşturulmasını otomatik hale getirmektir. –

+0

@muzzamo Caller-Allowable-Codebase içinde * ile çalıştı ve çalıştı. –

İlgili konular