2013-05-04 1 views
1

에 실행합니다 :스크립트 언어는 것이 내가 스크립트 언어를 찾고 있어요 서버

  1. 실제로
    • 나는 실행되지 않습니다 것을 의미 자바 에 임베드하는 스크립트 언어 네이티브 코드로하지만, 해석
    • 에 ACC
    • 보안 (다음 서버에서 실행하는 것 자신의 스크립트를 업로드 할 사용자) 스레드, I/O 등에 액세스 할 수 없습니다.
    • 흐름 제어 + 알고리즘/데이터 구조 (콜렉션과 같이 미리 정의 된 "클래스") + 명시 적으로 제공된 API와의 상호 작용
  2. 이 (초 또는 n 명령 n)를
    • 언어를 해석하는 경우가 가능하다 스크립트에 따라 실행 시간을 제한 할 수있을 것이다. 예를 들면 : "나는 다음 명령을 실행하고 실행하거나 종료하는 경우는 체크"
  3. 이 궁극적 인 목표는 신뢰할 수없는 코드를 실행 할 수있다

간단하고 읽을 수있는 구문이 각 명령을 대체 무한 루프를 입력하거나 너무 많은 리소스를 소비하거나 제공된 API를 제외한 다른 것을 액세스하는 것과 같이 제공되는 API 만 사용할 수 있어야합니다.

사용할 수있는 기존 언어가 있습니까?

+1

자바가 기본적으로 JavaScript를 지원한다고 생각합니다. – Supericy

+0

@Supericy - 자바의 최신 버전 만 생각합니다. 게다가, 그것은 단지 첫 번째 기준을 다룹니다. –

답변

1

먼저이 기준을 모두 충족하는 언어는 생각할 수 없습니다. 그러나 이해하기 위해 요구 사항을 분석하는 것이 도움이 될 수있는 이유 :

1)는 당신의 정의에 따라 달라집니다하지만, 이 존재 할

물론 내장 가능한 스크립트 언어 자바에 임베드하는 스크립트 언어 스크립팅 언어의 간단한 표현 언어가 "스크립팅 언어"일까요?

2) 보안 (사용자는이 어려운 다음 서버에서 실행됩니다 자신의 스크립트)

을 업로드 할 것입니다. 문제는 ... 언어 구현이 안전 할 경우 에게 어떻게 알 수 있습니까? 간단한 경우 (예 : "계산기"언어) 쉽지만, Rhino Javascript 인터프리터 또는 JRuby 또는 JPython이 안전하다는 결론을 어떻게 정당화 할 수 있습니까?

참고 : 스크립팅 언어를 사용하면 스크립트에서 Java 클래스 또는 (떨림) 원시 코드를 호출 할 수 있으므로 Java에서 얼굴이 안전한지 묻는 것과 거의 동일한 문제가 발생합니다. JVM에서 임의의 신뢰할 수없는 코드를 실행합니다. (내 대답은 아니오 야 ...그리고 확실히 자바에 패치/알려지지 않은 보안 취약점이 있지만.)

3)이 (스크립트 당 실행 시간을 제한하는 초 또는 n 지침)

이것은 이론적으로는 가능 N 가능할 것이다 단,이 언어는 Java 세계와의 상호 작용이 매우 제한적입니다. 하지만 일반적인 경우에는 "비협조적 스레드를 안전하게 막는 방법"문제가 발생합니다. 표준 JVM에는 해결책이 없습니다.

처리하기 어려운 측면 중 몇은 다음과 같습니다

  • 아무것도 관련된 스레드, I/O를 차단
  • 스크립트 - 투 - 자바 방법은 시간이 오래 걸릴 전화,
  • .

(예 : 거대한 데이터 구조 만들기, 호스트 JVM에서 개체 잠금 또는 시스템 수준 리소스를 사용하도록 설계된 작업 수행, 예를 들어 채우기 파일 시스템 또는 시스템의 엔트로피 풀 드레인.)

4) 당신이 직접 판단해야합니다 뭔가 간단하고 읽을 수있는 구문

있습니다. (가독성/단순성은 객관적으로 측정 할 수 없습니다 ...)

+0

나는 내 질문에 분명히하겠다. 나는 당신의 염려를 이해한다. – mabn

관련 문제