如何忽略 blade Laravel 上的 iframe

how to ignore iframe on blade Laravel

#提问

帮助我解决我的问题,当我用 Laravel

建立网站时

我正在用这样的语法渲染我的 post :

<div>
  <p>{!! $post->content !!}</p>
</div>

但是我有问题,当我在 post 中插入 i frame 时,因为 html 已被 {!! !!} 移除。

我必须尝试使用​​ {{ $post->content }},但所有内容都使用 HTML

呈现

这个问题有什么解决办法吗? ?

非常感谢

使用 {!! 您可以“按原样”粘贴内容,换句话说,您容易受到各种问题的影响,例如允许 <script> 标签被放置到您的模板中。

{{ 语法将转义任何 HTML 因此你看到的是实际的 html 字符而不实际解析它(即做 {{ '<b>bold</b>' }} 不会导致粗体字体但在文本 <b>bold</b>).

现在你的问题是:有一些麻烦的方法可以自己过滤掉任何 html 标签并将 <iframe> 留在那儿(类似于 {!! only_iframe($content) !!}),但是它非常困难,可能不会产生安全的解决方案。

你自己的回答表明你使用了 {!!html_entity_decode($post->content)!!} 只是意味着你的 HTML 被编码为开头,这不是我可以从你的问题中推断出来的。请注意,如果您不确定是否可以控制 $post->content.

的内容,您现在很容易受到恶意代码注入