2009-03-09 10 views
0

나만의 ClassLoader를 작성하고 싶습니다. 애플릿의 디폴트 ClassLoader보다 빠르고 동적 인 것이 필요합니다.java.security.SecureClassLoader 클래스를 확장하는 방법은 무엇입니까?

하지만 난 방법을 구현하는 방법을 모르는 다음의 CodeSource에 유효한 인증서가있는 경우

PermissionCollection getPermissions(CodeSource codesource) 

슈퍼 구현은 아무런 권한을 부여하지 않습니다.

인증서 자체를 확인해야합니까, 아니면 이미 Java VM을 확인하고 사용자로부터 수락 했습니까?

답변

1

Sun PlugIn 및 WebStart는 getPermissions을 무시하고 서명을 확인하고 사용자가 인증서를 수락 할 것인지 확인합니다. 이는 구현 세부 사항이며 향후 변경 될 수 있습니다.

+0

처럼 보일 수 있습니다 ? –

1

내가 틀렸다면 정정하십시오 - 당신이 원하는 것은 애플릿의 초기화 어딘가에서 클래스 로더를 생성 한 다음 그 로더를 사용하여 후속 클래스를로드하는 것입니다. 예인 경우, 애플릿에는 서명되어 (사용자가 브라우저 경고를 클릭 한 경우) 모든 권한이 이미 부여됩니다. 당신이 당신이`SecureClassLoader` 인스턴스가 아닌`getPermissions` 방법 자체의 주위에 일 플러그인과 Webstart를 행동에 대해 이야기하고, 구현 세부 말할 때 getPermissions 방법은 그렇게하지,이

PermissionCollection p = new Permissions(); 
    p.add(new AllPermission()); 
    return p; 
+0

예 및 아니오 classLoader가있는 jar 파일이 승인되었으며 모든 권한을가집니다. 다른 jar 파일에는 유효하지 않습니다. 이 파일은 조작 할 수 있습니다. 그것을 확인하지 않고 모든 것을 받아 들일 수있는 보안 구멍이 될 것입니다. – Horcrux7

+0

맞습니다.하지만 Custom 클래스 로더 자체는 신뢰할 수있는 병 안에 있습니다. 따라서 모든 권한이 부여 된 경우 논리적으로 해당 권한이로드되는 클래스로 '이동'해야합니다. 그러나 나는 당신의 요지를 - 파일은 JRE 플러그인 자체를 해킹하여 조작 할 수 있습니다. – talonx

+0

마찬가지로, 클래스의 악의적 인 버전을 상위 로더 (플러그인 로더)에 넣습니다. 그러나 이것은 또한 클라이언트 컴퓨터가 손상되었음을 의미합니다. – talonx

관련 문제