15

「エンタープライズ」製品でスクリプト可能な要素を提供しようとしています。groovyを使いたいのですが、非常に基本的なものを確保するのに苦労しています。

たとえば、クライアントが単純に行かないようにしたい

Class.forName("my.company.internal.SecruityTools").runAsAwesome(...)

accesDeclaredMembersメソッドのみを許可して上書きし、checkPackageAccessホワイトリストに登録されたパッケージのみを許可するポリシーを使用してセキュリティマネージャーをインストールしました。残念ながら、デフォルトのclassLoaderチェーンはこれをバイパスし、クラスをロードするように見えます。

これはかなり一般的で議論されている問題のように思われますが、私は一生の間、はるかに優れたアプリケーションのコンテキストで信頼できないスクリプトをロックダウンする方法についてのライブラリや優れたブログ投稿を見つけることができません。

誰かがこれを成功させましたか?私はいくつかのかなり明白な投稿/概念を見逃していますか?このための確かなライブラリはすでにありますか?多分Groovy.tinFoilHatMode(true)

4

4 に答える 4

7

Groovyサンドボックスを見てください。System.exit(0)またはのようなものを停止するためにそれを使用することができますnew File(“/etc/passwd”)

于 2013-07-12T20:22:23.940 に答える
2

java-sandboxを見てください。groovyでの使用方法のチュートリアルもあります:http://blog.datenwerke.net/2013/06/sandboxing-groovy-with-java-sandbox.html

于 2013-06-14T13:45:18.527 に答える
1

GroovyCodeSourceの使用を検討しましたか

于 2012-04-29T02:08:04.383 に答える
1

最終的には上記の組み合わせでしたが、本当の魔法のソースは、アクセスチェックで任意の式(または暗黙的を含む)をラップするこのASTトランスフォーマーを実装することでした。thisthis

于 2015-06-18T19:46:44.430 に答える