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 3566 05.03.2013, 19:38
Ostatni post: Vanil
  Java plik *.jar jak uruchomić ? Missqu 2 85772 16.06.2011, 13:25
Ostatni post: Missqu
  Problem z odtworzeniem pliku .jar wizzi 3 11498 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
  Menu wysuwane z boku patryk67 1 9427 07.08.2019 12:43
Ostatni post: aht
  Visual Basic Excel l.całkowitą przedstawić w postaci szesnastkowej fugaz 4 11333 18.06.2019 21:36
Ostatni post: fugaz
  Nauka do Olimpiady Informatycznej? piotr0905 1 10745 08.06.2019 16:50
Ostatni post: wlisik
Ściana Prosta gra w Builder C++ Kiranek1 1 10809 31.05.2019 15:20
Ostatni post: Szachista
  Menu (Nie widoczne długie opisy) wanhelsing 5 12726 28.04.2019 19:31
Ostatni post: koneton
  Skrypt usuwający pliki sylwiaa1 2 4854 28.04.2019 15:20
Ostatni post: sylwiaa1
  Środowisko do assemblera Physicist 4 11976 21.04.2019 14:04
Ostatni post: Ajgor
  VBA excel dmjs 6 12449 17.04.2019 10:20
Ostatni post: ptrick
  C++ - sens pogłębiania nauki gbr 5 12049 25.03.2019 12:53
Ostatni post: koneton
  Klasa wewnętrzna w C++ Physicist 4 11616 23.03.2019 18:28
Ostatni post: Physicist
  Ruby on Rails - tutoriale luciussulla 0 10691 23.03.2019 16:49
Ostatni post: luciussulla
Big Grin Czy dostane sie technikum informatycznego klaudiusz20046 6 14651 21.03.2019 01:28
Ostatni post: UnableToSee
  [C#] Program do moderacji czatów gier wiktrom12 0 11228 07.03.2019 15:33
Ostatni post: wiktrom12
  Mój pierwszy projekt - Pomoc rafal12999 1 11629 07.02.2019 22:01
Ostatni post: Szachista
  pomoc projekt scilab piesel18 2 13200 04.02.2019 09:03
Ostatni post: piesel18