2017-02-02 13 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 бросить Security Exception.

 Смежные вопросы

  • Нет связанных вопросов^_^