防止在HAML中执行ruby代码

时间:2011-10-26 15:33:02

标签: ruby-on-rails ruby haml

有没有办法阻止某些Ruby代码在HAML中执行?

我遇到的问题如下:允许用户访问 在CMS环境中设置自己的HAML文件。我想允许 IF / ELSE和LOOPS在这些文件中,但其他ruby代码不应该 出于安全原因被执行。

我是否必须扫描自定义HAML文件以获取ruby代码并删除 那还是有更好的解决方案?

感谢您提供任何帮助!

格雷格

3 个答案:

答案 0 :(得分:3)

我认为你没有,至少不是HAML。

Ruby的其他视图库意味着最终用户的安全。例如,CerubisLiquid

答案 1 :(得分:2)

听起来你正在寻找像this这样的模板的某种沙盒。我无法谈论使用此库可能获得的结果。他们确实说它仍然是实验性的,但它看起来像是一个好的起点。如果没有别的,你可以使用他们的代码作为擦洗你的haml的指南。

答案 2 :(得分:1)

另一种可能性是使用haml.js之类的东西来解释您的HAML客户端。通过这种方式,通过注入或其他安全漏洞不会污染您的服务器,同时仍然可以通过Javascript访问循环结构和逻辑。