2008-10-24 4 views
5

JAppletJFileChooser을 사용하여 사용자가 하드 드라이브에서 파일을 선택할 수 있습니까? 아니면 Java 애플릿 보안을 위반합니까? 기본 보안 설정을 사용하고 있다고 가정합니다. 사용자에게 추가 권한을 부여하도록 요청하고 싶지 않습니다.JApplet 내에서 JFileChooser 사용

답변

3

This threadJFileChooser이 허용되기 전에 애플릿을 디지털 방식으로 서명해야한다는 것을 나타냅니다.

+0

이 끊어집니다. 그리고 wayback이나 google 캐시에 복사본이 없습니다. 무엇이든 찾으면 여기로 돌아옵니다. –

+0

여기를 참조하십시오 : http://narencoolgeek.blogspot.com/2007/11/3-easy-steps-to-self-sign -applet-jar.html –

1

그런 경우 (기본 설정 사용) 올바른 것이고 기본 보안 관리자는 로컬 파일에 대한 액세스를 허용하지 않습니다.

1

아마도 사용자의 하드 드라이브에서 아무것도 읽으려면 PrivilegedAction을 사용해야합니다. @ mmyers가 애플릿에 서명해야한다고 말한 것처럼.

당신의 답은 예입니다. 나는 이것을 끝내기 전에 이것을 할 수 있다는 것을 알고 있습니다.

2

앞서 언급했듯이 애플릿에 서명해야 사용자가 애플릿을 제공 할 때 "모호한 보안 경고"가 발생합니다. 사용자가이 애플릿을 실행하도록 허용하면 애플릿에는 완전한 액세스 권한이 주어지며 일반 응용 프로그램과 같은 기능을 수행하므로 확실한 보안상의 영향을 미칩니다. 나는 현재 진행중인 웹 애플리케이션에 관한 동일한 딜레마에 빠졌고 아직 전개 될지 확실하지 않다.

작은 파일로 작업하는 경우 웹 브라우저에서 기본 제공 파일 브라우저를 사용하고 서버에서 파일 내용을 되돌릴 수 있습니다.

또한, 서명 된 애플릿에 관한 만들 수있는 보안 조치는 다음과 같습니다

  • 는 애플릿 코드의 출처를 검증.

    URL appletUrl = MyApplet.class.getProtectionDomain().getCodeSource().getLocation(); 
    if(appletUrl.toString().equalsIgnoreCase(safeAppletUrl) == false) 
        return false; 
    
  • 애플릿이 실행 된에서 기본 URL을 확인. 링크

    URL documentUrl = this.getDocumentBase(); 
    if(documentUrl.toString().equalsIgnoreCase(safeDocumentUrl) == false) 
        return false;