【发布时间】:2016-05-09 18:22:06
【问题描述】:
我正在 Laravel 中创建一个 WebApp,注册的商业用户将能够借助存储在应用程序中的所有数据向他们的客户发送自动电子邮件。该应用程序是一种 CRM。但是对于创建自定义电子邮件,我想让客户能够创建自己的文本和一些逻辑。
目前,我已对其进行了设置,因此只有预定义的变量可以与一些 HTML 一起使用。我解析标记以生成电子邮件。如下定义。
- 使用预定义的变量。前任。 [{cFullName}] 为客户的全名。
我面临的问题是如果用户想要添加某种逻辑,例如:
- 循环并打印所有 OrderItems
-
如果订单发货供应商是 FedEx,则添加消息说跟踪链接将在晚上 8 点后生效。
我目前使用的是 Laravel 默认自带的 Blade。因为它将使我能够为用户提供更多的灵活性。
它在开发环境中工作得非常好并解决了目的,但存在问题。
唯一的问题是,这会带来自己的一组安全问题,因为我尝试在数据库中存储每个用户的多个 Blade 模板,并在它触发发送电子邮件事件时在运行时编译它。
如果有人能给我一个关于如何使用户添加的 Blade 更具限制性和安全性或完全不同的选项的想法,我将不胜感激。因为让用户在应用程序中添加逻辑是很难安全地实现的。
【问题讨论】:
-
如果投反对票,我们将不胜感激。谢谢。由于这是一个与编程相关的问题,因此它正在以更安全的方式但通过编写代码来实现逻辑。
标签: php security laravel blade templating