Bien sûr, le modèle de sécurité Java a été étudié par de nombreux chercheurs. Les conclusions sont très positives puisqu'elles font apparaître que le modèle est bon et sans faille. Mais alors, comment expliquer l'existence des applets hostiles ?
Premièrement, le fait que le modèle ne présente pas de faille ne signifie pas que l'implémentation de l'interpréteur ne possède pas de faille de sécurité. Dans la pratique en effet, tous les interpréteurs, même ceux de Sun, possèdent des défauts. Ainsi certains programmes peuvent exploiter des failles spécifiques à un interpréteur. Par exemple, il existe une applet qui détruit uniquement Netscape 4.04 et 4.05.
Mais la grande majorité des applets hostiles se contente en fait d'exploiter les accès aux ressources qu'elles possèdent. Les applets peuvent :
De plus, il faut souligner que l'utilisation de Java est toujours activée par défaut dans les browsers et que les utilisateurs sont rarement conscients de donner ces autorisations.
Si l'on peut dire que Java est un langage de programmation correctement sécurisé, les droits d'accès aux ressources des applets posent un autre problème. Dans certains cas, on a envie de leur donner plus de droits d'où l'utilisation de la signature d'applet, dans d'autres on peut penser qu'elles en ont trop.