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 3251 05.03.2013, 19:38
Ostatni post: Vanil
  Java plik *.jar jak uruchomić ? Missqu 2 82374 16.06.2011, 13:25
Ostatni post: Missqu
  Problem z odtworzeniem pliku .jar wizzi 3 10605 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
  Mój pierwszy projekt - Pomoc rafal12999 1 6502 07.02.2019 22:01
Ostatni post: Szachista
  pomoc projekt scilab piesel18 2 7799 04.02.2019 09:03
Ostatni post: piesel18
  Szkoła Informatyczna Zikinan 1 6708 02.02.2019 17:59
Ostatni post: wojownikhaha
  [Java] Strona z zadaniami do rozwiązania i odpowiedziami rafal12999 2 7424 27.01.2019 13:44
Ostatni post: rafal12999
  kompilacja biblioteki Agui - cmake jurek2 0 6728 10.01.2019 13:12
Ostatni post: jurek2
  Zamiana całego zestawu znaków wg przyporządkowania BarHorab 5 7402 19.12.2018 16:45
Ostatni post: Szachista
  Sumowanie licz excel - problem OxyGenE 2 10236 19.12.2018 16:29
Ostatni post: Szachista
  Jaki kod pod pewne zdarzenia visualbasic 2010 aktywny27 4 7935 07.11.2018 13:41
Ostatni post: Ajgor
Scared Ipad Pro programowanie? NissmoOne 4 8732 06.10.2018 12:22
Ostatni post: NissmoOne
  C# pierwsza pusta komórka Excel DonCorleone 0 8024 21.09.2018 16:58
Ostatni post: DonCorleone
  .bat nie kompresuje plików GIENTY 3 8463 06.09.2018 07:20
Ostatni post: broda99
  problem z programem .bat wiktrom12 4 9616 30.08.2018 08:25
Ostatni post: wiktrom12
  Silnik do gier ZigglerGames 1 8298 23.08.2018 09:03
Ostatni post: Szachista
  Chciałbym zrobić prosty plik exe z jedną funkcją densour 4 9032 09.08.2018 16:24
Ostatni post: Ajgor
  Który język wybrać do stworzenia aplikacji synchronizujące pliki z urządzeniem mobiln Elemental 2 2414 18.07.2018 12:05
Ostatni post: Ajgor