security - Jasper 报告安全沙箱

标签 security jasper-reports reporting sandbox

我正在编写一个 Java Web 应用程序,我希望允许用户执行基本的 PDF 报告。通常我会使用 Jasper Reports 来完成此任务。然而这次我希望用户能够在 iReport 中编辑自己的报告并上传它们。这应该足够简单。

这让我想到,Jasper 可以让您在报告中有效地编写代码,这些代码在生成报告时执行。是否可以编写一份可以完全访问 Java API 以及我的 Web 应用程序的报告。我不希望用户能够杀死 tomcat,或者更糟的是仍然使用我构建的 DAO api 来读取其他用户的数据。

有人知道这是否真的可行吗?如果可以的话,您可以以某种方式将其沙箱化吗?也许我可以在报告 XML 编译之前对其进行过滤?

还有谁知道这是否也适用于其他开源报告工具(例如 BIRT)?

最佳答案

我将发布一项 Web 服务 [1],以允许开发人员使用 i-report 上绘制的模板生成 PDF,

所以我必须解决同样的问题,我的第一次尝试是使用Java安全引擎API,但它太复杂,需要很多权限。

因此,当我搜索 Heroku 如何隔离每个 Web 应用程序时,我发现了 Linux 容器 (LXC) [2],因此我决定将每个“开发人员沙箱”隔离在一个 lxc 容器中。

它不会阻止用户关闭“沙盒服务器”,但如果他们这样做,他们只会关闭自己的沙盒,其他用户的沙盒不会受到影响。

[1] http://reports.simpleservic.es/landing [2]http://en.wikipedia.org/wiki/LXC

关于security - Jasper 报告安全沙箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10716281/

相关文章:

java - 如何检查JasperReports中BigDecimal字段的值是否为负数

java - 轻量级 Java 报告引擎

SQL - 需要查找重复记录但排除反向事务

asp.net-mvc-3 - Asp.Net MVC 3 Razor View 的报告工具

security - 添加公开的图像上传表单时如何保护您的 Web 应用程序?

security - JWT RS256、RS384、RS512 算法有什么区别?

javascript - "Secure"如何调用AJAX?

android - 使用应用程序签名作为 key ?

java - Jasper 报告 - 在将参数传递给报告引擎之前进行参数转换?

reporting-services - ColdFusion 报告选项