javascript - 如何保护我的 laravel 应用免受跨站脚本攻击?
问题描述
我读了一篇关于跨站点脚本的文章,我想知道我的应用程序是否容易受到这些类型的操作的影响。
我的应用中有一些模块需要详细说明。所以我使用summernote编辑器。在前面为了正确显示文本我必须使用{!! !!}。在我的视图中使用它们来显示未转义的数据是否危险?
解决方案
我的应用中有一些模块需要详细说明。所以我使用summernote编辑器。在前面为了正确显示文本我必须使用{!! !!}。在我的视图中使用它们来显示未转义的数据是否危险?
是的。永远不要相信用户。永远不要依赖客户端转义。您需要在服务器端对此进行转义。
我正在使用Laravel Purifier,您可以使用它来转义所有 html 标签,或者您可以定义允许哪些标签(例如,在文本字段上类似于<h1>
或<strong>
应该允许,但您需要删除所有<script>
标签。
Laravel 包含开箱即用的 csrf 令牌管理,因此您可以避免跨界攻击。
编辑
正如 TE 在评论中所问的那样,这就是您使用 Purifier 的方式:
安装后,您可以在配置中为转义定义多个配置(例如,如果您有不同的文本,一个您希望允许,<h1>
另一个不允许)。在HTML.Allowed =>
您编写所有允许使用的标签中,在CSS.AllowedProperties =>
您设置允许的样式更改(例如color
)中。
要转义输入,只需使用clean($input, 'Configurationname');
,其中Configurationname
是配置的名称。默认值为default
。
推荐阅读
- python - Selenium 等待 javascript 超时
- flutter - 我如何使用rest api在flutter中只获取文本
- flutter - BlocBuilder 小部件的 Flutter 小部件测试
- postgresql - 使用 macOS Big Sur(M1) 安装 PostgreSQL 失败
- python-3.x - 在 S3 中上传对象时添加加密
- c++ - C++ API 设计模式
- ios - 如何在 SwiftUI 中更改步进器的背景颜色?
- java - 将 JPanel(使用 FlowLayout)添加到 JScrollPane 时,JScrollPane 无法正常工作
- php - wordpress 开发查询
- algorithm - 2个元素数组中的最大乘积