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。我們不會在這里仔細研究加密的工作原理,但是如果您想了解