我现在用的是Summernote WYSIWYG编辑器(如下图所示),发现它使用HTML标记来格式化文本。
<textarea name="body" id="editor" value="{{old('body')}}" rows="10" required></textarea>
如何防止XSS攻击我的应用程序?我输入为纯文本,并输出存储使用:{!! $body !!}
。
是否可以过滤textarea
弱势输入,如:<script>alert("boom")</script>
默认情况下,Laravel不提供任何机制来从给定的输入删除某些标签,所以你需要使用第三方软件包一样Purifier。
如下图所示,净化器可以简单地使用Composer
安装。
composer require mews/purifier
要定制净化器的默认设置,发布配置文件(config/purifier.php
)。
php artisan vendor:publish --provider="Mews\Purifier\PurifierServiceProvider"
现在,导航到config/purifier.php
并根据需要调整HTML.Allowed
条目。请注意,未在本条目中列出的所有的标签将被clean()
方法来去除。
的配置选项的详尽的参考可以发现here。
clean("<p>Good</p> <script>alert('Bad')</script>")
输出:
<p>Good</p>