2012-02-01 2 views
3

저는 Minecraft라는 게임을 호스트하여 사람들이 자신의 Java JAR을 업로드 할 수있게하려고합니다.
이제 특정 포트 범위로 제한하려고합니다.
가상 박스에서 모든 JVM을 실행하는 것은 잔인한 일이지만 우리가 기본 포트를 사용하는 것을 방지하려면 어떻게해야합니까?
시작 줄에 javaagent가있는 뭔가가 있습니까?응용 프로그램 주위에 방화벽이있을 수 있습니까?

편집 :
이것은 좋은 샘플 코드일까요?

System.setSecurityManager(...); 
// invoke the jar with a URLClassLoader

+2

* 주제와 관련하여 * close * 투표를 이해하지 못함 * 가능한 답변 중 하나 인 'SecurityManager'와 함께 유효한 질문입니다. –

+2

@Voters : This is not * off- 이야기. 프로그램의 포트 - 범위를 프로그래밍 방식으로 제한하는 것은 완전히 주제가되는 질문입니다. – skaffman

답변

3

실제로 당신은 방화벽이 아닌 샌드 박스를 찾고 있다고 생각합니다. 자바 security manager을 사용하면 정책을 통해 이와 같은 작업을 수행 할 수 있습니다.

3

네트워크 액세스를 제한하기 위해 JVM의 보안 정책을 수정할 수 있어야합니다. 여기에 몇 가지 정보가 있습니다 : http://docs.oracle.com/javase/1.4.2/docs/guide/security/permissions.html#SocketPermission

+0

어떻게 구현할 수 있습니까? 이러한 권한을 가진 JAR을 실행하는 JVM을 실행해야합니까? 일부 샘플 코드는 훌륭합니다! – BronzeByte

+0

@BronzeByte : 전체 페이지 (또는 적어도 시작 부분) – skaffman

+0

@BronzeByte를 읽습니다. 업로드 된 jar 파일을 특정 폴더에 넣고 해당 위치의 권한을 '코드베이스'로 설정합니다. 정책 파일은 이미 JVM 구성 어딘가에 존재합니다. 단지 편집 만하면됩니다. 링크 된 페이지의 맨 위에 예제 구성 및 정보가 있습니다. – sje397

0

그리고 파일 시스템 액세스와 같은 다른 보안 문제는 어떻게됩니까? 브라우저에서 애플릿처럼 제한된 VM이 필요합니다 (Applet Security Managers).

+0

JVM은 Java 가상 머신을 의미하며 이제는 만들면됩니다. 호스트 시스템에 액세스하지 :)하지만 난 이미 다른 파일 (아직 테스트하지 않음)을 만지지 않는 응용 프로그램을 가지고 있고 모든 것을 잘 chmod :) – BronzeByte

관련 문제