让用户编辑他们的Laravel 5.6刀片视图文件[关闭]

问题描述 投票:0回答:1

让用户编辑他们的laravel刀片视图以便他们编辑他们正在使用的主题有什么风险?每个用户都将在views文件夹中为他们创建一个文件夹,其中包含由blade.php文件组成的模板。在那里,他们可以编辑html并访问$ php_variables进行显示。或者,还有更好的方法?

谢谢

laravel blade
1个回答
0
投票

首先,您的用户可能会无意中创建漏洞。例如,如果他没有正确地转义输出,则另一个用户可以注入恶意脚本(XSS)然后利用您的应用程序。对于laravel,这可能通过使用{!! !!} 代替 {{ }}。

然后,您的用户可能希望通过添加恶意代码来自行利用您的应用程序。由于刀片模板是php文件,他可以做任何事情。不要忘记他也可以执行javascript。

在不知情的情况下,很难找到更好的解决方案。根据您的应用程序应该执行的操作,您应该调整安全性。

为了最大程度的安全性,我会过滤提交的内容并删除所有javascript和php,{{}}除外。对于{{}},检查是否允许内部变量(使用允许变量创建列表)。还要确保他不能在{{}}内执行任何其他代码。

阻止任何外部(甚至可能是内部)链接调用,因为攻击者可以从其他服务器/源加载恶意脚本。这适用于<img>, <link>等...而且,仅仅阻止一些文件扩展名是不够的。

请阅读blade doc并确保阻止任何其他代码执行方式,即

@php
//
@endphp

如果你想创建这样的过滤器,请查看this link,也许它会帮助你开始。请做大量的研究,以确保您的应用程序是安全的。并且不要忘记保护你们其他人的申请;-)

还可以看看OWASP PHP Security Cheat Sheet

编辑:当然还有其他几种方法来处理这个问题。您可以自己查看每个模板(如果用户数量有限),您可以让用户在多个模板之间进行选择(无需编辑),您可以阻止所有php和javascript并使用“shortcodes”,然后由您的受控php代码替换(基本上是您的自己的模板引擎)等

© www.soinside.com 2019 - 2024. All rights reserved.