Laravel 中的 App_KEY 到底有什么用?下面本篇文章给大家介绍一下App_KEY 的作用,希望对大家有所帮助!
Laravel 9 保姆级视频教程,想学不会都难!进入学习
每次 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。我们不会在这里仔细研究加密的工作原理,但是如果您想了解