답변:
보다
종이에서 :
... 현재 Java 시스템에서 사용되는 스택 검사 알고리즘은 다음과 같은 간단한 스택 검사 모델 의 일반화로 생각할 수 있습니다 .
이 모델에서 유일한 주체는 "시스템"과 "신뢰할 수 없음"입니다. 마찬가지로 사용 가능한 유일한 권한은 "전체"입니다. 이 모델은 Netscape Navigator 3.0에서 내부적으로 사용되는 스택 검사 시스템과 유사합니다.
이 모델에서는 모든 스택 프레임에 보안 주체 (프레임이 가상 시스템 또는 내장 라이브러리의 일부인 코드를 실행중인 경우 "시스템", 그렇지 않은 경우 "신뢰할 수 없음")로 레이블이 지정되고 권한 플래그가 포함되어 있습니다. 위험한 것을 원한다고 명시 적으로“권한 활성화”를 선택하는 시스템 클래스에 의해 설정됩니다. 신뢰할 수없는 클래스는 권한 플래그를 설정할 수 없습니다. 스택 프레임이 종료되면 권한 플래그 (있는 경우)가 자동으로 사라집니다.
파일 시스템 또는 네트워크 액세스와 같은 위험한 작업을 수행하기위한 모든 절차는 먼저 스택 검사 알고리즘을 적용하여 액세스 허용 여부를 결정합니다. 스택 검사 알고리즘은 호출자 스택의 프레임을 최신에서 가장 오래된 프레임까지 순서대로 검색합니다. 권한 플래그가있는 스택 프레임을 찾으면 액세스가 허용되어 검색이 종료됩니다. 신뢰할 수없는 스택 프레임 (권한 플래그를 얻지 못함)을 찾으면 액세스가 금지되고 예외가 발생하여 검색이 종료됩니다. ...