|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 2992
|
[JAVA]Creare regole di policy "automaticamente"
E' possibile poter "costruire" un'elenco da dare in pasto alla VM a run time in modo da ottenere gli stessi effetti di un file policy?
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Teoricamente puoi creare un'estensione di SecurityPolicy che garantisca i permessi da te scelti e impostarne un'istanza come gestore delle politiche di sicurezza con System.setSecurityManager.
Poichè la sostituzione è a sua volta sottoposta ad un controllo di sicurezza, la fattibilità dipende dalla sostituibilità delle politiche in uso. In pratica nessun insieme di permessi di sicurezza consente la sua sostituzione con un altro insieme, quindi la praticabilità è limitata a casi scolastici.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 2992
|
Quote:
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Quando invochi il metodo statico:
System.setSecurityManager(aNewSecurityManager) è eseguito un controllo preventivo del genere: Codice:
SecurityManager old= System.getSecurityManager();
if(old != null) {
old.checkPermission(new RuntimePermission("setSecurityManager"));
}
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 2992
|
Quote:
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Se intendi il l'attributo codebase che segue il grant, puoi ometterlo e significa "a prescindere da quale sia l'origine del codice".
grant {...} Il risultato è equivalente a user.dir perchè in entrambi i casi si tratta di un valore non predeterminabile.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 2992
|
Quote:
|
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
L'uso del file policy va benissimo.
Non è realistico pensare di sostituire al volo i permessi di sicurezza. Vale a dire, se mi dai un'applicazione Java da eseguire non è che io prenda e bel bello dica: java Applicazione perchè tanto varrebbe farlo gridando "seppuku" mentre ci si infila la spada. Come tutti, scrivo: java -Djava.security.manager Applicazione Cioè uso quelle restrizioni standard che erodono le capacità nocive di un'applicazione. [edit: ho premuto il pulsante sbagliato, continuo] La tua applicazione Java deve sempre fare i conti con l'esistenza di restrizioni che possano impedirne in tutto o in parte il funzionamento. Per farlo è sufficente che all'avvio dell'applicazione tu esegua dei test preliminari sui permessi garantiti dall'utente. Qualora manchi questo o quel permesso necessario ad una certa funzione, disabiliti quella funzione. Se manca qualcosa di essenziale, lo notificherai con un cordiale messaggio di avviso: guarda che voglio leggere questo file, voglio scrivere quell'altro, voglio connettermi di qua eccetera. Sta poi all'utente decidere se si fida o no.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! Ultima modifica di PGI-Bis : 15-01-2007 alle 00:01. |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Il percorso del policy può essere relativo, quindi puoi scrivere
-Djava.security.policy=app.policy app.policy verrà cercato nella dir corrente. Se usi ant puoi "giocare" con dir utente e altro, così <java ... <sysproperty key="java.security.policy" value="${user.dir}/user.policy"/> ... </java>
__________________
|Java Base| |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:49.











|








