![](/img/trans.png)
[英]Call Jython from Java (Jython script calls Java, which then has to callback Jython)
[英]How to disable calls to certain Java packages from Jython
我將 jython 嵌入到我的 Java 應用程序中。 用戶將能夠提交和執行一些 python 腳本。 我想確保他們不會從這些腳本中訪問一些易受攻擊的 java 包/類。 另一種選擇是完全禁用 java 集成。
可以設置 jython 將使用的自定義 class 加載程序。 代碼如下所示:
final PySystemState state = new PySystemState();
state.setClassLoader(new MyClassLoader());
Py.setSystemState(state);
然后在 MyClassLoader 中,您可以檢查腳本中正在訪問哪個 java class 並根據某些標准拒絕它。 這看起來像這樣
public class MyClassLoader extends ClassLoader
{
@Override
protected synchronized Class<?> loadClass(final String className, final boolean resolve)
throws ClassNotFoundException
{
if (className.startsWith("secret.class"))
{
throw new RuntimeException();
}
return MyClassLoader.getSystemClassLoader().loadClass(className);
}
}
看看 java 安全管理器,它允許您訪問 select 什么可以訪問或不可以訪問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.