내가 nashorn 사용하여 사용자가 서버 측에서 파일을 필터링하는 자바 스크립트 함수 정의를 제공 할 수있는 응용 프로그램을 쓰고 있어요 서버 측에서 사용자의 스크립트를 실행/jjs :Nashorn/jjs 보안 :
cat /etc/js/library.js user.js > tmp.js &&
cat /path/to/input.txt | jjs --language=es6 -doe -J-Djava.security.manager tmp.js > /path/to/output.txt &&
rm tmp.js
나는 사용자가 무한 루프 내 디스크를 채우기 위해 쓸 수 있다는 것을 알고
for(;;) print("#####);
그러나 읽기/파일 시스템에서 파일을 작성하는 그를 방지하기에 충분 -J-Djava.security.manager
입니까?
감사합니다.
감사합니다,하지만 jjs 여전히 읽을 수 paradoxal을하지 않습니다 스크립트 파일'tmp.js'? (또는이 js 파일을 읽은 후에 * 활성화 된 보안입니까?) – Pierre
아니요, jjs 코드 자체에는 기본적으로 AllPermission 정책이 지정됩니다. 명령 줄에 지정된 파일의 초기 세트를 읽는 일관성이있는 jjs 코드입니다. 스크립트가 추가 스크립트를로드하기 위해 "load"프리미티브를 호출하면 스크립트 (로드 스크립트) 보안 사용 권한도 적용됩니다. –