Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

Pieczętowanie Archiwum Jar - Po co?

#1
Pieczętowanie Archiwum Jar - Po co?
Witam w jakim celu pieczętuje się archiwa JAR w JAVA ?

Na stronie Oracla w dziale Javy znalazłem info typu:"Package sealing is also important for security because it
restricts access to package-protected members to only those classes defined in the package that originated from
the same JAR file.".
O ile dobrze to rozumiem pieczętowanie stosuje się ze względów bezpieczeństwa ponieważ ogranicza to dostęp do klas
które są wewnątrz takiego zapieczętowanego pakietu.
W książce Java Podstawy znalazłem info :
"Pieczętowanie może być konieczne w przypadku używania klas, metod i pól o zasięgu pakietowym. Gdyby nie
pieczętowanie inne klasy mogły by być umieszczane w tym samym pakiecie i dzięki temu uzyskiwać dostęp do elementów pakietowych. "
Po koleji co zrobiłem:

1.Stworzyłem plik źródłowy z kodem plik1.java:
Kod:
public class plik1{
 public String name = "Jasio";
 public static void main(String[] args){
   System.out.println("Klasa zapieczętowana do której nie powinno być dostępu");
 }
 public String getImie(){
    return name;
 }
}
2.skompilowałem do postaci plik1.class

3.stworzyłem plik manifestu.mf:
Kod:
Main-Class: pakiet/plik1
//(pamiętałem o znaku nowej linie)
Name: pakiet/
sealed: true
//(pamiętałem o znaku nowej linie)
4.pliki umiesciłem w pakiecie(pakiet)

5.stworzyłem wykonywalne archiwum JAR : C:\java\jar cfvm Start.jar pakiet/manifest.mf pakiet/*.class
Wszystko działa owe archiwum można uruchomić z konsoli:java -jar Start.jar,
ALE do owego archiwum które zoastało zapieczętowane(I maiało być bezpieczne) mogę dodać poprzez update pliku JAR,
nową klasę która to klasa dostanie się do zmiennej name poprzez wywołanie metody getName():
6.nowaKlasa.java:


Kod:
public class nowaKlasa extends plik1{
 public nowaKlasa(){
   System.out.println("przechwytuje dane z zapieczętowanej klasy = "+this.getImie());
 }
 public static void main(String[] args){
   new nowaKlasa();
 }
}
7. C:\java\jar ufv Start.jar pakiet/nowaKlasa.class. (update zapieczętowanej paczki o nową klase)

Więc po co było owe pięczętowanie które miało zabezpieczyć zapięczętowane klasy przed dostępem do klas i ich
zmiennych. I że w ogóle na zapieczętowannej paczce(archiwum JAR) mogłem zrobić update.
Proszę o pomoc bo albo źle interpretuje owe pieczęntowanie pakietów albo źle wykonuje pieczętowanie, gdyż po
zapieczętowaniu pakietu mogę za pomocą innej klasy po wcześniejszym jej dodaniu dostać się do danych z klasy
plik1, a jeśli każdy może wykonać taki update archiwum (wstrzyknąć nieproszoną klasę) to może dostać się do
zawartości owego bezpiecznego(zapieczętowanego) pakietu.
Zagmatwałem ale mam nadzieje że ktoś zrozumie o co mi chodziOczko
 System operacyjny: windows_eight Przeglądarka: ie
#2
RE: Pieczętowanie Archiwum Jar - Po co?
1. Czy klasa plik1 jest w pakiecie pakiet? W kodzie nie widzę deklaracji pakietu.

2. Pieczętowanie ma zupełnie inne zadanie. Czytałeś https://docs.oracle.com/javase/tutorial/...alman.html ?

3. Ktoś tego używa?
 System operacyjny: linux_fedora Przeglądarka: firefox
#3
RE: Pieczętowanie Archiwum Jar - Po co?
Ad.1 Tak klasa plik1 znajduje się w pakiecie
Ad.2 Tak czytałem to oraz to:
https://books.google.pl/books?id=Igak-aU...mp;f=false
i to: https://books.google.pl/books?id=TnU_BAA...mp;f=false
i jeszcze kilka innych(nie wchodzę tu jeśli nie wyczerpie wszystkich możliwości i pomysłów, staram się dojść do czegoś sam żeby nie zawracać komuś głowy w ostateczności wchodzę tutaj).
Ad.3 Tak jak pisałem w moim poście sam nie wiem czy ktoś tego używa i dalej nie wiem co to pieczętowanie oznacza.
"Ps. Jak pisałem wcześniej czytałem w książce  "java podstawy / cay s. Horstmann i gary cornell", że
Pieczętowanie może być konieczne w przypadku używania klas, metod i pól o zasięgu pakietowym. Gdyby nie
pieczętowanie inne klasy mogły by być umieszczane w tym samym pakiecie i dzięki temu uzyskiwać dostęp do elementów pakietowych. ".A w linku który mi podesłałeś wygląda to trochę inaczej
1 Proszę o łopatoligiczne info do czego to służy ? Wesoły 
2. O jakiś przykład wykorzystania
3. Czy tego dziś się używa
Serdeczne dzięki
Pozdrawiam
 System operacyjny: windows_eight Przeglądarka: ie
#4
RE: Pieczętowanie Archiwum Jar - Po co?
Żeby tego użyć musisz mieć dwa jary. W jednym blokujesz, a w drugim nawet jak podasz taki sam pakiet, to nie podepniesz się pod parametry klasy, które mają poziom widoczności package. Nie przypominam sobie,  żebym przez kilkanaście lat pracy z java kiedykolwiek się z tym spotkał.
 System operacyjny: linux_fedora Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki (Pieczętowanie Archiwum Jar - Po co?)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Winrar samorozpakowywujące się archiwum Vanil 0 3563 05.03.2013, 19:38
Ostatni post: Vanil
  Java plik *.jar jak uruchomić ? Missqu 2 85540 16.06.2011, 13:25
Ostatni post: Missqu
  Problem z odtworzeniem pliku .jar wizzi 3 11451 06.03.2011, 00:04
Ostatni post: koneton

Skocz do:


Wybrane wątki (Pieczętowanie Archiwum Jar - Po co?)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Pytanie - programowanie batch [cmd] Max23 0 4836 20.03.2020 01:03
Ostatni post: Max23
  Oczekiwanie na Akcje przycisku wanhelsing 8 6930 01.03.2020 19:44
Ostatni post: Szachista
Toungue Wybór szkoły średniej przez potencjalnego programistę Zikinan 1 6591 09.02.2020 15:58
Ostatni post: dzikuu86
  Poszukuję pomysłu na prosty program ;) janciu96 5 16077 13.12.2019 23:32
Ostatni post: Ajgor
  Programowanie Batch (CMD) Informatyk2019 0 7354 11.12.2019 18:30
Ostatni post: Informatyk2019
  [JavaScript] Znajdowanie przedziału czasu rafal12999 0 3378 10.12.2019 17:58
Ostatni post: rafal12999
  Przekazywanie wskaźnika przez referencję w Qt Trojan3000 3 15406 10.12.2019 13:16
Ostatni post: Ajgor
  Proszę o pomoc w uzupełnieniu ankiety dt. Zawodu Programisty MaleMonki 0 3852 17.11.2019 12:47
Ostatni post: MaleMonki
  Spring framework – jakie strony polecacie do nauki? olek23 5 9204 15.11.2019 15:57
Ostatni post: Alsenas
  Programowanie windy (problem) w C++ mysza2323 2 8464 06.11.2019 23:04
Ostatni post: mysza2323
  Programy w C ~Anonim 1 8697 22.10.2019 17:48
Ostatni post: Szachista
  Wyświetlanie informacji z bazy danych na stronie www PitPlay 1 9241 16.09.2019 11:18
Ostatni post: Ajgor
  Błąd przy uruchamianiu programu w Java z wiersza poleceń Physicist 3 4711 30.08.2019 14:16
Ostatni post: Physicist
  Python z wiersza poleceń Physicist 15 24783 21.08.2019 20:14
Ostatni post: Physicist
  Transfer plików via FTP Visual Basic FireBytes 3 7215 15.08.2019 07:41
Ostatni post: Szachista