2017-02-02 25 views
1

我正在使用clojail庫進行沙箱操作,但它的行爲並不像預期的那樣。Clojail不會在Clojure中拋出安全異常

下面是代碼:

(ns jail.core 
    (:require [clojail.core :as s] 
      [clojail.testers :as t])) 

(def my-tester [(t/blacklist-objects [clojure.lang.RT]) 
       (t/blanket "clojail")]) 

(def sb (s/sandbox my-tester)) 

(println (sb '(do 
       (import clojure.lang.RT) 
       (RT/errPrintWriter)))) 

(import clojure.lang.RT)線有扔拋出:SecurityException但事實並非如此。

它返回PrintWriter(errPrintWriter)對象。

回答

0

事實證明,如果我不通過類對象到import宏,它只是工作,但我認爲這種行爲有點奇怪。

這裏:

(println (sb '(do 
       clojure.lang.RT 
       (RT/errPrintWriter)))) 

現在我得到安全例外,在import宏以某種方式阻止clojail拋出安全例外