¿Cómo funciona la inspección de pila?

11

Este es el precursor de mi otra pregunta más avanzada sobre la inspección de la pila.

Stack Inspection es un mecanismo de seguridad introducido en la JVM para manejar el código en ejecución que se origina en ubicaciones que tienen diferentes niveles de confianza. Esta pregunta tiene como objetivo encontrar una descripción simple de su funcionalidad. Entonces:

¿Cómo funciona la inspección de la pila?

Dave Clarke
fuente

Respuestas:

7

Ver

Del periódico:

... El algoritmo de inspección de pila utilizado en los sistemas Java actuales puede considerarse como una generalización del siguiente modelo simple de inspección de pila :

En este modelo, los únicos principales son "sistema" y "no confiables". Del mismo modo, el único privilegio disponible es "completo". Este modelo se asemeja al sistema de inspección de pila utilizado internamente en Netscape Navigator 3.0.

En este modelo, cada marco de pila está etiquetado con un principal ("sistema" si el marco está ejecutando código que es parte de la máquina virtual o sus bibliotecas integradas, y "no confiable" de lo contrario), y contiene un indicador de privilegio que puede ser establecido por una clase de sistema que elige "habilitar sus privilegios", declarando explícitamente que quiere hacer algo peligroso. Una clase no confiable no puede establecer su marca de privilegio. Cuando sale un marco de pila, su bandera de privilegio (si la hay) desaparece automáticamente.

Todos los procedimientos a punto de realizar una operación peligrosa, como acceder al sistema de archivos o la red, primero aplican un algoritmo de inspección de pila para decidir si se permite el acceso. El algoritmo de inspección de la pila busca las secuencias en la pila de la persona que llama en secuencia, desde la más nueva hasta la más antigua. La búsqueda finaliza, permitiendo el acceso, al encontrar un marco de pila con un indicador de privilegio. La búsqueda también finaliza, prohibiendo el acceso y lanzando una excepción, al encontrar un marco de pila no confiable (que nunca podría haber obtenido un indicador de privilegio). ...

Vor
fuente