如何防止XSS攻击一个所见即所得的编辑器?

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

我现在用的是Summernote WYSIWYG编辑器(如下图所示),发现它使用HTML标记来格式化文本。

<textarea name="body" id="editor" value="{{old('body')}}" rows="10" required></textarea>

如何防止XSS攻击我的应用程序?我输入为纯文本,并输出存储使用:{!! $body !!}

是否可以过滤textarea弱势输入,如:<script>alert("boom")</script>

laravel laravel-5 textarea xss summernote
1个回答
2
投票

默认情况下,Laravel不提供任何机制来从给定的输入删除某些标签,所以你需要使用第三方软件包一样Purifier

Installing Purifier

如下图所示,净化器可以简单地使用Composer安装。

composer require mews/purifier

Configuration

要定制净化器的默认设置,发布配置文件(config/purifier.php)。

php artisan vendor:publish --provider="Mews\Purifier\PurifierServiceProvider"

现在,导航到config/purifier.php并根据需要调整HTML.Allowed条目。请注意,未在本条目中列出的所有的标签将被clean()方法来去除。

的配置选项的详尽的参考可以发现here


Example

clean("<p>Good</p> <script>alert('Bad')</script>")

输出:<p>Good</p>

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