首页 > 解决方案 > 如何保护我的 laravel 应用免受跨站脚本攻击?

问题描述

我读了一篇关于跨站点脚本的文章,我想知道我的应用程序是否容易受到这些类型的操作的影响。

我的应用中有一些模块需要详细说明。所以我使用summernote编辑器。在前面为了正确显示文本我必须使用{!! !!}。在我的视图中使用它们来显示未转义的数据是否危险?

标签: javascriptlaravel

解决方案


我的应用中有一些模块需要详细说明。所以我使用summernote编辑器。在前面为了正确显示文本我必须使用{!! !!}。在我的视图中使用它们来显示未转义的数据是否危险?

是的。永远不要相信用户。永远不要依赖客户端转义。您需要在服务器端对此进行转义。

我正在使用Laravel Purifier,您可以使用它来转义所有 html 标签,或者您可以定义允许哪些标签(例如,在文本字段上类似于<h1><strong>应该允许,但您需要删除所有<script>标签。

Laravel 包含开箱即用的 csrf 令牌管理,因此您可以避免跨界攻击。

编辑

正如 TE 在评论中所问的那样,这就是您使用 Purifier 的方式:

安装后,您可以在配置中为转义定义多个配置(例如,如果您有不同的文本,一个您希望允许,<h1>另一个不允许)。在HTML.Allowed =>您编写所有允许使用的标签中,在CSS.AllowedProperties =>您设置允许的样式更改(例如color)中。

要转义输入,只需使用clean($input, 'Configurationname');,其中Configurationname是配置的名称。默认值为default


推荐阅读