Laravel 必知安全清单:20 个要点

不论你管理小的业务还是大的业务,网站安全始终都是主要关注点。不幸的是,随着技术的进步,各式各样的黑客(例如在线攻击和发送垃圾邮件的人)都在寻找新的方式来攻击你的网站。因此,无论成本如何,你的团队中都应该勤奋并努力提前预防这些问题的出现。

你的线上站点很可能受到 XSS 攻击、SQL 注入,或是不安全的对象引用等攻击。

然而,如果你的站点基于 Laravel 框架,你可以使用 Laravel 的安全特性来保护你的站点。

我们创建了 Laravel 必知安全清单,你可以随时查看并提前解决网站的安全问题。

1. 选择正确的服务器主机

这是基本的,但许多企业主和站点管理员最终会犯错误。 如果您在共享服务器和专用服务器之间谨慎决定,将会有所帮助。 此外,您需要有一个网站备份。 同时,请确保服务器符合 SSH、SSL、FTPS 和 VPN 等安全协议。

2. 请使用 PHP 和 Laravel 最新更新版本。

专家总是建议最好使用每个平台的最新版本。这是因为来自开发人员的持续更新是为了使系统更坚固和故障安全。

3. 别忘了定期评估防火墙设置。

如果您希望您的网站进行安全优化,请确保所有必要的防火墙都已就位。有几个选项可供选择,因此强烈建议您聘请一家专业的 Laravel 网站开发公司,它可以指导您做出更好的决策。

4. 使用Laravel安全性功能。

Laravel提供了几种内置安全功能 - 例如,来自Laravel的身份验证系统。 Laravel系统实践两个认证用户信息的认证方法 - 保护器用于验证每个用户请求的用户数据。同时,厂商在数据库中恢复用户信息。

提供开发服务的开发人员必须注意建立数据库和标准,并确定控制器 - 其余的由方法负责。内置身份验证功能将自动开始与站点或应用程序同步。

5. 屏蔽SQL注入。

SQL注入是对网站和应用程序的简单攻击形式的简单形式。这些由于存储在cookie中的用户信息而发生。使用PDO参数涵盖以防止他人努力改进SQL查询。

6. 过滤和验证所有数据。

Laravel 有 Eloquent ORM,它使用 PDO 参数绑定在一定程度上限制了 SQL 注入。但是 Laravel 还提出了其他方法来构建 SQL 查询。过滤并验证所有内容!不管数据来自哪里,配置文件、GET、服务器环境、POST,都不要相信。

7. 使用强哈希函数存储密码。

请记住,您的所有密码和其他关键数据都使用可靠的散列函数(如 Bcrypt)进行散列。不要使用易受攻击的散列函数,如 SHA1 和 MD5。 Laravel 框架自带一个原生哈希工具;使用它们并利用它们的好处。

8. 使用 Laravel 的内置加密。

我们强烈建议利用 Laravel 的内置加密机制,而不是自己构建。从 PHP 7.2 开始,更多过时的加密库已被弃用,例如 Mcrypt。但是,PHP 7.2 更好地支持要好得多的 Libsodium 库。因此,如果您想使用不同的加密库,请查看 Libsodium。

9. 防止跨站请求伪造(CSRF)。

对于 Laravel 站点或应用程序上的每个活跃用户,系统都会创建一个 CSRF 令牌。 令牌的使用是为了限制外部各方产生虚假请求。 每次发出请求时,平台都会匹配保存在令牌中的请求。 如果请求与保存的令牌不匹配,则认为该请求无效,并且不执行该进程。

10. XSS 或跨站点脚本安全。

在 XSS 攻击中,破坏者会入侵您网站的 JavaScript,因此每当潜在客户访问受影响的页面时,恶意脚本都会带来最坏的影响。 因此,确保 XSS 安全性至关重要。 幸运的是,Laravel 平台具有内置的原生 Laravel 安全功能,可以保护您的站点免受 XSS 攻击。 该系统自行启动,是保护数据库的最可靠方式。

11. 养成备份网站的习惯.

不管怎么说, 都需要对网站的保护有预见性; 创建者应该定期对网站进行备份。另外,你的网站管理员应该每天抽一定的时间对网站的原始数据进行备份。 这样的话,在任何可能发生的危机情况下,你才能有机会恢复到备份点。

12. 使用 HTTPS.

你知道当你的网站运行在HTTP上时,任何类型的数据都是明文传输的吗? 这里面还包括你的密码或者其他敏感数据。轻而易举就能获取到你的明文内容。所以, 使用 HTTPS 协议部署网站更安全可靠。 SSL 证书的使用正在从HTTP转变为HTTPS协议,建议有开发能力的Laravel公司都部署该协议。

13. 使用 Laravel Purifier。

在我们看来,Laravel 安全最佳实践 之一是使用 HTML Purifier 来提高系统的安全性。 由于这是一项非常技术性的工作,我们建议您聘请一位具有这项工作专业知识的开发人员。

14. 记录所有事情。

无论您的日志记录是否失败,无论是登录工作、密码重置还是调试数据,您都必须使用一个易于使用和开发的包(如 Monolog)进行日志记录

15. 检查您的 SSL/TLS 配置。

确保您的服务器的 SSL/TLS 配置已更新并配置完善。 它没有使用过时的 TLS 版本、不安全的密码、没有弱密钥的可靠安全证书,以及通过定期扫描它的更多功能。

16. 发送所有可用的安全标头。

有各种安全标题,您可以利用以使您的网站和应用程序更加受到最低努力。这些包括X-XS-Protection,HSTS,X-Content-Type-Options,X-Frame-Options和内容安全策略。确保它们正在准确配置并在请求回复中发送。

17. 采用内容安全策略。

无论您有一个小静态网站,一个大的静态网站,一个页面还是基于Web的应用程序,就是执行内容安全策略(CSP)是保持安全问题的最佳方式。它适用于一系列标准攻击向量的减轻,例如XSS。

18. 不要忘记监控您的应用程序安全性。

监控您的应用程序安全性以可疑行为和攻击。理解当您的申请开始受到攻击时对保留它至今已晚至关重要。

每个 Laravel 开发人员必须知道的最佳 Laravel 安全软件包是什么?

Laravel-ACL

Laravel-ACL 可以保护应用程序中的控制器方法,如路由和增删改查方法,并通过基于角色的权限控制来确保身份验证过程的安全性。

此外,为了验证安全状态,此扩展包还基于权重扫描基于角色的权限。

Laravel Security

为了消除代码库的所有 XSS 漏洞,Laravel Securitys 将是你的首选。目前,源于 CodeIgniter 3 的 Laravel 5 已经在框架中使用这个扩展包来保护您的业务。

Laravel Security Component

如果您想将 Symfony 的安全核心融合进 Laravel,最佳的解决方案就是使用此扩展包。

结论

很公正的来说,Laravel 已经成为了Web开发服务 中最受欢迎的 PHP 框架之一,Laravel 框架之所以这么受欢迎,正是因为它所具备的这些功能特性。因此,鉴于 Laravel Security 有如此众多预装的安全功能,Laravel 的安全性是相当容易实现的。

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://darkbears.com/blog/18-security-c...

译文地址:https://learnku.com/laravel/t/62302

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 12

还有就是千万 别在因为 简单用Jwt, 那个token 是容易暴露的,可以快速破解的! 而passport则不会! 要不你就要对JWT 进行二次加密!

4周前 评论
dongzhiyu (作者) 3周前
IceBay 3周前
sy_dante 3周前
Alone88 3周前
小丑路人 3周前
helloStar 2周前
海狗王 2周前
hhhhkkk 2周前

不认可第8点。如果我用laravel做后台开发,使用go或者swoole框架做接口开发,加密字符怎么通用?

2周前 评论
clark 2周前

这篇文章感觉是在让我招人,作者是不是在找工作?

2周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!