개발자가 맞춤 Groovy 스크립트 및 프리 마커 템플릿을 업로드 할 수있는 시스템을 개발 중입니다.샌드 박스 Java/Groovy/Freemarker 코드 - 특정 메소드 실행 방지
기본 자바 보안 인프라로 매우 높은 수준의 보안을 제공 할 수 있습니다. 즉 코드가 파일 시스템이나 네트워크에 액세스하지 못하도록 방지 할 수 있지만 특정 방법에 대한 액세스를 제한해야합니다.
내 계획은 Groovy 및 Freemarker 런타임을 수정하여 특정 방법을 화이트리스트 또는 블랙리스트로 표시하는 주석을 읽는 것이지만 코드의 분기 된 버전을 유지해야하므로 바람직하지 않습니다.
Groovy 또는 Freemarker에서 호출 할 때 특정 메소드의 실행을 막을 수 있어야합니다. 나는 콜 스택을 볼 수있는 해킹을 고려해 봤지만 엄청난 속도의 공격이 될 것이다.
다른 사람이 이것을 구현하는 사람이 있습니까?
대부분 (대부분의 경우) 메서드가있는 클래스는 컴파일 할 때 알 수 없기 때문에 AST를 분석하는 것은 실제로 작동하지 않습니다. 그래도이게 가장 좋은 대답 이니, 이걸 똑딱 거릴거야. 메타 클래스를 사용하여 적절한 솔루션을 찾지 못했습니다. –