2
我在沙盒Groovy上工作,我想阻止[email protected]
運算符。我使用的是SecureASTCustomizer
,我寫了一個自定義SecureASTCustomizer.ExpressionChecker
,我刪除了授權。如何阻止。@運營商?
我的問題是:我找不到檢測@
運算符的方法。
我在沙盒Groovy上工作,我想阻止[email protected]
運算符。我使用的是SecureASTCustomizer
,我寫了一個自定義SecureASTCustomizer.ExpressionChecker
,我刪除了授權。如何阻止。@運營商?
我的問題是:我找不到檢測@
運算符的方法。
你可以這樣說:
import org.codehaus.groovy.control.CompilerConfiguration
import org.codehaus.groovy.control.customizers.SecureASTCustomizer
import org.codehaus.groovy.control.customizers.SecureASTCustomizer.ExpressionChecker as EC
import org.codehaus.groovy.ast.expr.AttributeExpression
def config = new CompilerConfiguration()
def secure = new SecureASTCustomizer()
secure.addExpressionCheckers ({ expr ->
!(expr instanceof AttributeExpression)
} as SecureASTCustomizer.ExpressionChecker)
config.addCompilationCustomizers(secure)
def shell = new GroovyShell(config)
shell.evaluate '''
class A { int val }
def a = new A(val:123)
[email protected]
'''
的groovy-sandbox庫支持攔截此。
(SecureASTCustomizer
實際上並不安全的。不要嘗試使用它的沙箱。)
由於它的作品!你瘋了! –