Java Runtime Environment può essere eseguito utilizzando un Security Manager se si desidera limitare determinati accessi a determinate parti dell'applicazione (in base al codice in esecuzione e allo stato di autenticazione).
Può essere abilitato in Apache Tomcat o in JBoss per esempio.
Il sistema delle politiche e delle autorizzazioni è un argomento complesso ed è documentato qui .
Certo, il sistema non è perfetto poiché le vulnerabilità a cui si fa riferimento per le applet si verificano quando l'applet "scappa" dal proprio gestore della sicurezza. Questo può accadere se c'è un bug nel gestore della sicurezza stesso (ovviamente un problema) o se il criterio è troppo lento.
Da questo punto di vista, un ambiente server è diverso da un ambiente applet in quanto l'ambiente dell'applet è installato con una politica valida per tutti: qualcosa che mira ad essere abbastanza buono da limitare il cattivo comportamento mentre abilita la maggior parte delle funzionalità, senza sapere quale codice verrà eseguito o in quale ambiente esatto. Un ambiente server è meno vulnerabile a tale riguardo, dal momento che potresti essere in grado di personalizzare la tua politica per soddisfare le tue esigenze specifiche (ad esempio, consentire connessioni al tuo server database specifico ma nessun'altra connessione in uscita).
I gestori della sicurezza tendono a non essere abilitati di default nei contenitori webapp, ma se necessario, puoi configurare i criteri in base alle necessità.