Voir
Extrait du journal:
... L'algorithme d'inspection de pile utilisé dans les systèmes Java actuels peut être considéré comme une généralisation du modèle d' inspection de pile simple suivant :
Dans ce modèle, les seuls principes sont «système» et «non fiables». De même, le seul privilège disponible est «complet». Ce modèle ressemble au système d'inspection de pile utilisé en interne dans Netscape Navigator 3.0.
Dans ce modèle, chaque trame de pile est étiquetée avec un principal («système» si la trame exécute du code faisant partie de la machine virtuelle ou de ses bibliothèques intégrées, et «non approuvé» sinon), et contient un indicateur de privilège qui peut être défini par une classe système qui choisit «d'activer ses privilèges», déclarant explicitement qu'elle veut faire quelque chose de dangereux. Une classe non approuvée ne peut pas définir son indicateur de privilège. Lorsqu'un cadre de pile se ferme, son indicateur de privilège (le cas échéant) disparaît automatiquement.
Toutes les procédures sur le point d'effectuer une opération dangereuse, comme l'accès au système de fichiers ou au réseau, appliquent d'abord un algorithme d'inspection de pile pour décider si l'accès est autorisé. L'algorithme d'inspection de pile recherche les trames de la pile de l'appelant dans l'ordre, du plus récent au plus ancien. La recherche se termine, permettant l'accès, lors de la recherche d'une trame de pile avec un indicateur de privilège. La recherche se termine également, interdisant l'accès et lançant une exception, lors de la recherche d'une trame de pile non approuvée (qui n'aurait jamais pu obtenir un indicateur de privilège). ...