Laravel中自定义消息的用户管理模板

时间:2016-02-01 10:27:34

标签: php security laravel blade templating

我正在Laravel中创建WebApp,其中注册的业务用户将能够借助应用程序中存储的所有数据向其客户发送自动电子邮件。该应用程序是一种CRM。但是,为了创建自定义电子邮件,我想让客户能够创建自己的文本和一些逻辑。

目前,我已对其进行了设置,因此只有预定义变量可以与某些HTML一起使用。我解析标记以生成电子邮件。定义如下。

  • 使用预定义变量。防爆。 [{cFullName}]表示客户的全名。

我面临的问题是,如果用户想要添加某种逻辑,例如:

  • 循环播放并打印所有OrderItems
  • 如果订单发货供应商是FedEx,则添加消息说跟踪链接将在晚上8点后生效。

    我目前使用的是Laravel默认使用的Blade。因为它将使我能够为用户提供更多的灵活性。

它在Dev环境中完美运行并解决了目的,但存在问题。

唯一的问题是,这会带来一系列安全问题,因为我尝试在数据库中存储每个用户的多个Blade模板,并在它触发的发送电子邮件事件时在运行时编译它。

如果有人能给我一个关于让用户添加Blade更具限制性和安全性或完全不同选项的方法的建议,我将不胜感激。让用户在应用程序中添加逻辑是一个难以安全实现的难题。

1 个答案:

答案 0 :(得分:0)

AFAIK,Blade旨在供开发人员使用,因此请避免将Blade用于用户内容。作为替代方案,您可以为用户创建自己的预定义语法集,这些语法集将被实际命令替换。这可能会带来一些限制,但我们又不喜欢有趣的业务。