【问题标题】:User Managed Templating for Custom Message in LaravelLaravel 中自定义消息的用户管理模板
【发布时间】:2016-05-09 18:22:06
【问题描述】:

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

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

  • 使用预定义的变量。前任。 [{cFullName}] 为客户的全名。

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

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

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

它在开发环境中工作得非常好并解决了目的,但存在问题。

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

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

【问题讨论】:

  • 如果投反对票,我们将不胜感激。谢谢。由于这是一个与编程相关的问题,因此它正在以更安全的方式但通过编写代码来实现逻辑。

标签: php security laravel blade templating


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-08-27
    • 2018-09-07
    • 2011-09-05
    • 2015-06-22
    • 1970-01-01
    • 2016-03-01
    • 2014-05-26
    • 2021-11-19
    相关资源
    最近更新 更多