1

我们有一个带有 Oracle 11g 数据库的基于 grails-groovy(现在是 1.3.7 版)的应用程序。我们必须向 OWASP 投诉,因此我们正在考虑所有可能的安全增强/插件。主要问题在这里:我们的应用程序中有一个创建电子邮件模板的功能,用户可以在其中创建一个新的电子邮件模板并保存它。用户必须在此模板页面中手动编写代码来创建模板。(实现完成,我们需要保护它!)代码包括

1) groovy 代码
2) grails 标签
3) SQL 选择查询(我们可以将用户限制为只读,以便没有可用的 Insert 和 Delete 等)
4) HTML 标签
模板由应用程序使用,它在其中编译、执行和应用模板发送到电子邮件之前。

我知道 markup-sanitizer 插件和 HDIV api 并考虑它们,但是我如何才能更多地保护此功能?

4

1 回答 1

0

我想这是一个你必须信任你的用户的功能。从我的角度来看,你无法清理这种标记——注入恶意代码的方法太多了。(参见“编写安全代码”一书)

谈到 OWASP,您总是必须分析威胁:攻击的可能性有多大,可以造成多大的伤害。如果只有管理员(您信任的)可以访问此模板引擎,那么我猜风险很低。

否则,您必须创建模板生成器而不是自由格式模板。但即使从您的描述中听起来也是一项艰巨的工作,因为您需要一个 SQL 查询构建器和某种模板构建器。

所以我想你应该尝试以一种可以安全实现的方式重新定义需求。

于 2012-04-10T12:31:06.097 回答