gpt4 book ai didi

Laravel 在 blade 中使用 {!!nl2br(e())!!} 安全吗

转载 作者:行者123 更新时间:2023-12-04 17:08:12 24 4
gpt4 key购买 nike

为了在 Laravel blade 模板中输出带有新行的文本,我使用了这个:

{!! nl2br(e($prodData->text))!!}

我在插入数据时并没有对数据进行清理,我只是将其修剪为只允许连续两个新行,如下所示:

public function setDescriptionAttribute($description)
{
$this->attributes['description'] = preg_replace('~(\R{2})\R+~', '$1', $description);
}

但现在我担心 {!!nl2br(e())!!} 会导致 xss 注入(inject),那么使用它安全吗?

最佳答案

如果 e() 是安全的,那么 {!! nl2br(e()) !! 是安全的 ( "safety" vs. "security" )。

{{ $foo }} 等同于 {!! e($foo) !!。所以 {!! nl2br(e()) !! 是适合您情况的正确方法。

关于@Loek 的回答:e() 取决于htmlspecialchars() 的安全性。如果 htmlspecialchars() 存在缺陷,基本上每个 PHP 网站都会遇到巨大问题。

关于Laravel 在 blade 中使用 {!!nl2br(e())!!} 安全吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50250540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com