当前位置: 首页 > 知识库问答 >
问题:

Jython:阻止对java类的访问&更改输出流

魏凡
2023-03-14

我希望在我正在开发的Java项目中使用Jython。我想知道两件事。

>

  • 我可以禁止从Python脚本访问Java类吗。例如,阻止脚本从java.util导入日期执行类似的操作?

    我是否可以更改print“hello”等写入的输出流,以便为实现重定向脚本输出?

    或者我必须编辑实际的Jython类来禁用和更改这一点?


  • 共有1个答案

    洪凯定
    2023-03-14

    另一种方法是分析Python解析树中的所有导入。我认为最好有一个以上的安全措施:

       String code = "import sys\n"+"from java.io import File\n"+"sys.exit()";
       AnalyzingParser anPar = new  AnalyzingParser(new ANTLRStringStream(code), "", "ascii");
    
       mod tree=anPar.parseModule();
       Visitor vis = new Visitor() {
           @Override
           public Object visitImport(Import node) throws Exception {
              System.out.println(node);
                           return node;
           }
    
           @Override
           public Object visitImportFrom(ImportFrom node) throws Exception {
              System.out.println(node);
                           return node;
           }
             };
       List<PythonTree> children=tree.getChildren();
       for (PythonTree c : children){
             vis.visit(c);
       }
    
     类似资料:
    • 我正试图从vue.js端访问laravel服务器。但它表明 CORS策略阻止从来源“http://localhost:8000/api/registerdoctor”访问位于“http://localhost:8080”的XMLHttpRequest:请求的资源上没有“Access-Control-Allow-Origin”标头。 怎么办?

    • 当我尝试在角7网络应用程序中执行补丁请求时,我遇到了一个问题。在我的后端,我有: 在我的前端服务中,我: 错误是: 我能做什么?谢谢

    • 我正在编写一个映射函数,它将键生成为一些user_id,值也是文本类型。我是这样做的 然后,在主程序中,我将映射器的输出类设置为: 因此,即使我将输出值的类设置为text.class,但在编译时仍然会出现以下错误:

    • 问题内容: 我正在尝试使用ServiceStackRedis客户端实现我认为是非常常见的缓存方案,但是我很难找到一个很好的例子。 在ASP.NETMVC应用程序中,我们对外部Web服务进行了相对长时间的运行(按计量),并将结果缓存了一段时间。在高速缓存实现中,希望阻止对该键的其他请求,直到Web服务调用完成为止,以避免其他(昂贵)调用。 那么,实现键级锁定的最佳方法是什么?Redis开箱即用吗?S

    • 我正在与Django合作一个项目,该项目通过React前端上的Django Rest框架通过API提供数据。可浏览的API工作正常,但是,react前端在控制台中给出了一个错误。 我已成功安装django cors标头。 CORS策略阻止从http://127.0.0.1:8000/products/http://localhost:3000获取数据:请求的资源上不存在访问控制允许来源标头。如果不