我们有一个基于grails-groovy(现在版本1.3.7)的Oracle 11g数据库应用程序。 我们必须对其进行OWASP投诉,以便我们考虑所有可能的安全增强/插件。 主要问题在这里: 我们的应用程序中有一个创建电子邮件模板功能,用户可以在其中创建新的电子邮件模板并进行保存。使用必须在此模板页面中手动编写代码以创建模板。 (实施完成后我们需要保护它!) 代码由
组成 1)常规代码
2)grails标签
3)SQL选择查询(我们可以将用户限制为只读,以便没有可用的插入和删除等)
4)HTML标签
该模板由应用程序使用,它在发送之前编译,执行模板并将其应用于电子邮件。
我知道markup-sanitizer插件和HDIV api并考虑过它们,但我怎样才能更多地保护这个功能呢?
答案 0 :(得分:0)
我想这是一个您必须信任您的用户的功能。从我的角度来看,你无法清理这种标记 - 如何注入恶意代码的方法太多了。 (参见“编写安全代码”一书)
说到OWASP,你总是要分析威胁:攻击的可能性和可以造成多大的伤害。如果只有管理员(您信任的)可以访问此模板引擎,那么我猜风险很低。
否则,您必须创建模板生成器而不是自由格式模板。但是,由于您需要SQL查询构建器和某种模板构建器,因此即使从您的描述中听起来也是一项很大的努力。
所以我想你应该尝试以可以实现安全实施的方式重新定义需求。