聊聊 Laravel 中 App_KEY 的作用
laravel 中的 app_key 到底有什么用?下面本篇文章给大家介绍一下app_key 的作用,希望对大家有所帮助!
每次 Laravel 开发人员新建或克隆 Laravel 应用时,生成 application key 或 APP_KEY 是最重要的初始步骤之一。
最近的 Laravel 安全更新修复了一个 APP_KEY 用途相关的漏洞。为了利用此漏洞,首先需要有权访问生产版 APP_KEY。解决此漏洞最简单的方法是转换(更改)您的 APP_KEY。这导致我们中的一些人提出了一个问题:应用程序密钥有什么作用?更改涉及什么?管理 Laravel 应用程序中的这些密钥的最佳实践是什么?
在这篇文章中,我们将讨论 APP_KEY 做和不做的事情,关于它与用户密码哈希的关系的一些常见误解,以及安全地更改 APP_KEY 的简单步骤而不会丢失对您数据的访问权限。
Laravel 安全修复
8月初,Laravel 5.5 和 5.6 收到了与 Cookie 序列化和加密有关的安全修复程序。一方面,修复很简单,大多数应用程序可能没有受到影响。另一方面,这是一个严重的安全风险,表明我们的社区需要更好地了解 APP_KEY 的工作方式。
要利用此安全漏洞,需要有人知道您的 APP_KEY,这就是为什么我要带您详细了解您的密钥,为什么重要以及如何更改它的原因。
有关安全修补程序的信息,请参阅以下资源:
- 安全更新(5.6.30)发行说明:https://learnku.com/docs/laravel/5.6/upgrade#upgra...
- 安全更新(5.5.42)发行说明:https://learnku.com/docs/laravel/5.5/upgrade#upgra...
什么是 APP_KEY?
应用程序密钥是一个32位字符的随机字符串,存储在 .env 文件中的 APP_KEY 密钥中。 Laravel 安装程序会自动为您生成一个,因此您只会在克隆现成应用程序时注意到它的缺失。
您之前可能看到过此错误:
要创建新密钥,您可以自己生成一个密钥并将其粘贴到您的 .env 中,或者可以运行 php artisan key:generate 让 Laravel 为您创建并自动插入一个密钥。
应用程序运行后,便会在一个地方使用 APP_KEY:cookie。Laravel 将密钥用于所有加密的 cookie (包括会话 cookie),然后再将其交给用户浏览器,并使用它解密从浏览器读取的 cookie。这样可以防止客户端更改其 cookie 并为其授予管理员特权或模拟应用程序中的其他用户。加密的 cookie 是 Laravel 中的重要安全特性。
所有这些加密和解密操作均由Laravel通过 Encrypter 使用 PHP 内置的安全工具处理,包括 OpenSSL。我们不会在这里仔细研究加密的工作原理,但是如果您想了解更多信息,我鼓励您阅读更多关于 PHP implementation of OpenSSL 和 openssl_encrypt function.
关于密码哈希的常见误解
在 Laravel 社区中,包括我自己直到最近,一个非常普遍的误解是任务 APP_KEY 用于登录密码的加密。幸运的是,事实并非如此!我觉得这导致许多人认为 APP_KEY 是不可更改,除非重置所有用户的登录。
密码并非被加密,而是被 哈希散列.
Laravel 的密码使用 Hash::make() 或 bcrypt() 进行哈希处理,但都不使用 APP_KEY。让我们看一下 Laravel 中的加密和哈希。
加密与散列
Laravel 中有两个主要的 facades:Crypt (对称加密) 和 Hash (单向哈希加密)。密码被 哈希散列,而 cookies 被(可选) 加密。让我们看一下差异。
对称加密
假设我想向我的朋友亚瑟 (Arthur) 发送一个秘密消息。上一次我们在一起时,我们俩一致确定了一个秘钥:
$key = "dont-panic";
- 如何将淘宝客与APP有效结合?
- 美国网站后缀的独特魅力:为何选···
- 医药精英研习地
- 基于动态域名的网站如何确保高可···
- linux删除虚拟主机不彻底怎···
- “磁力搜索新门户”
- 瑞幸,是掌控代言人营销的神吧?
- 建站一年半SEO优化实战指南:···
- AI智能时代的原创文章创作新革···
- 让生活更高效,葫芦侠工具助你提···
- 游戏推广达人
- “湖北二师自考本科直通车”
- 零基础突破,竞价运营新篇章
- 了解 JSX:全面概述
- 珠海网站SEO优化案例:如何在···
- 如何在Linux环境中设置自动···
- 低成本高效获客,四步开启营销之···
- 如何申请GPT3API并开启智···
- 视频号开店保证金是多少?
- 怀化网站优化:提升本地搜索排名···
- OpenAI:引领未来智能革命···
- 建站虚机SC01选购指南:快速···
- WAP自助建站平台是否提供移动···
- notepad背景色怎么改
- 服务器环境下二级域名建站:怎样···
- 建站教程:SEO优化与关键词布···
- LinkedIn 学习上的日 ···
- ChatGPT费用到期后怎么充···
- 文字排版AI软件-让排版工作轻···
- 南京智网优科技有限公司
- 云自助建站系统源码:如何快速上···
- 如何通过SEO管理工具提升网站···
- linux如何删除一个文件
- 常见的品牌推广方式都有哪些?
- Top建站域名SEO优化:域名···
- 如何使用 JavaScript···
- 淘宝推广应用平台有哪些?哪种推···
- 基因魔液,极致优化!
- 合肥专业网站定制专家
- 网站排名、流量双提升,SEO优···
- 专业SEO推广,高效提升网站排···
- 深入了解GitHub中文官网网···
- AI写作好用吗?人工智能的写作···
- 槐荫SEO,网络营销领航者
- 如何设置网页搜索关键字,让网站···
- ChatGPT出故障?背后的真···
- 贵州茅台茅粉节变身茅友节 圈层···
- 为什么做了全网营销推广没有效果···
- 视频号带货,真能赚钱吗?
- 青岛网站速升宝典