向用户公开php模板引擎?

向用户公开php模板引擎?,php,security,templates,twig,Php,Security,Templates,Twig,我想在我的web应用程序中构建一个报表生成器。用户通过站点的其他部分收集数据,然后应该能够生成“报告”,在报告中他/她可以以文档方式使用所述数据。我希望用户能够使用基本的数学功能,获取/设置自己的变量,等等。我想为什么要重新发明轮子?如果我允许用户使用类似这样的东西编写报告,并且只允许他们使用某些扩展,那么这看起来合理安全吗?Twig模板已经删除了标记中的任何php,并且除了基本的字符串更改等功能外,没有太多的强大功能可供使用。请告诉我您的想法。Twig有一个相当强大的功能,完全符合您的描述。有

我想在我的web应用程序中构建一个报表生成器。用户通过站点的其他部分收集数据,然后应该能够生成“报告”,在报告中他/她可以以文档方式使用所述数据。我希望用户能够使用基本的数学功能,获取/设置自己的变量,等等。我想为什么要重新发明轮子?如果我允许用户使用类似这样的东西编写报告,并且只允许他们使用某些扩展,那么这看起来合理安全吗?Twig模板已经删除了标记中的任何php,并且除了基本的字符串更改等功能外,没有太多的强大功能可供使用。请告诉我您的想法。

Twig有一个相当强大的功能,完全符合您的描述。有了足够严格的安全策略,我在这里看不到任何问题。

如果twig满足了您的需要,为什么不呢?它做得很好,有一个沙盒模式,可以编译模板。相反,从PHP提供PHP是很难区分的,所以使用一些模板对我来说听起来不错。

这个应用有多广泛?这表明它已经存在了一年的大部分时间,但是有没有人齐心协力去攻击Twig的沙箱?是否有针对策略编写者的最佳实践?我知道整个Symfony2代码库(其中Twig用作默认模板引擎)都受到Sektionins的约束(“代码”下的最后一点),但我不能说Twig总体和沙盒扩展是否经过测试。就最佳实践而言,除了提供的默认策略外,我真诚地怀疑是否有类似的情况出现。谢谢链接。我找不到关于审计范围或基本规则的任何信息。对于OP,我会先问Symfony他们是否依赖沙箱来保护任何有价值的东西。当我编写沙盒时,第一批攻击者总是会发现一些东西。除了与创建者交谈之外,您还可以自己对扩展进行测试,看看是否可以从您的用户群中获得(非?)合理的用例。感谢您的指点。我会调查一下与Symfony的联系,然后亲自去沙箱看看。