Laravel的应用程序密钥 - 它是什么,它是如何工作的?使用位置:不使用的地方:它是如何工作的:一些最佳实践是:

2022-08-30 14:18:02

据我所知,Laravel中的应用程序密钥为会话和敏感数据提供了保护,但我想了解的是它究竟是如何工作的?它的目的是什么?我找不到有关它的任何信息。


答案 1

APP_KEY用于加密而不是哈希。您在应用程序加密的每个数据都在幕后使用APP_KEY。请记住,加密的数据可以解密,但散列数据无法解密。

APP_KEY的一个常见误解是它与密码哈希有关,事实是它不是。

泰勒的推文

你可以在上面的推文中看到,APP_KEY与HASHED数据无关。


答案 2

使用位置:

在应用程序中使用 encyption(而不是哈希)的每个 laravel 组件都使用APP_KEY。(会话、CSRF 令牌和 Cookie)

不使用的地方:

其中,使用哈希(密码)的 larvel password_reset_token。

因此,更改APP_KEY不会对密码或password_reset令牌造成任何问题。

它是如何工作的:

APP_KEY是应用程序中没有人知道的私有字符串 (encryption_key)。因此,如果只有应用程序知道密钥,则只有应用程序可以解密由此密钥加密的数据。这就是其安全性的工作原理。

**有关其功能如何工作的更多信息,您只需在项目中检查此文件:加密服务提供商.php

一些最佳实践是:

  • 仅将其存储在 .env 文件中。(不要将其存储在配置/应用程序.php或任何GIT跟踪文件中)
  • 仅当出现以下情况时才更改它:
    • 您发现您的密钥可能已泄露。(以便其他人可以解密您的数据)
    • 您想要注销所有用户(由会话管理的用户,而不是 api 令牌)
    • 您希望使 Cookie 失效。

推荐