Laravel 中的 App_KEY 到底有什么用?下面本篇文章給大家介紹一下App_KEY 的作用,希望對大家有所幫助!
Laravel 9 保姆級視頻教程,想學(xué)不會都難!進入學(xué)習(xí)
每次 Laravel 開發(fā)人員新建或克隆 Laravel 應(yīng)用時,生成 application key 或 APP_KEY
是最重要的初始步驟之一。
最近的 Laravel 安全更新修復(fù)了一個 APP_KEY
用途相關(guān)的漏洞。為了利用此漏洞,首先需要有權(quán)訪問生產(chǎn)版 APP_KEY
。解決此漏洞最簡單的方法是轉(zhuǎn)換(更改)您的 APP_KEY
。這導(dǎo)致我們中的一些人提出了一個問題:應(yīng)用程序密鑰有什么作用?更改涉及什么?管理 Laravel 應(yīng)用程序中的這些密鑰的最佳實踐是什么?
在這篇文章中,我們將討論 APP_KEY
做和不做的事情,關(guān)于它與用戶密碼哈希的關(guān)系的一些常見誤解,以及安全地更改 APP_KEY
的簡單步驟而不會丟失對您數(shù)據(jù)的訪問權(quán)限。
Laravel 安全修復(fù)
8月初,Laravel 5.5 和 5.6 收到了與 Cookie 序列化和加密有關(guān)的安全修復(fù)程序。一方面,修復(fù)很簡單,大多數(shù)應(yīng)用程序可能沒有受到影響。另一方面,這是一個嚴(yán)重的安全風(fēng)險,表明我們的社區(qū)需要更好地了解 APP_KEY
的工作方式。
要利用此安全漏洞,需要有人知道您的 APP_KEY
,這就是為什么我要帶您詳細(xì)了解您的密鑰,為什么重要以及如何更改它的原因。
有關(guān)安全修補程序的信息,請參閱以下資源:
- 安全更新(5.6.30)發(fā)行說明:https://learnku.com/docs/laravel/5.6/upgrade#upgra…
- 安全更新(5.5.42)發(fā)行說明:https://learnku.com/docs/laravel/5.5/upgrade#upgra…
什么是 APP_KEY
?
應(yīng)用程序密鑰是一個32位字符的隨機字符串,存儲在 .env
文件中的 APP_KEY
密鑰中。 Laravel 安裝程序會自動為您生成一個,因此您只會在克隆現(xiàn)成應(yīng)用程序時注意到它的缺失。
您之前可能看到過此錯誤:
要創(chuàng)建新密鑰,您可以自己生成一個密鑰并將其粘貼到您的 .env
中,或者可以運行 php artisan key:generate
讓 Laravel 為您創(chuàng)建并自動插入一個密鑰。
應(yīng)用程序運行后,便會在一個地方使用 APP_KEY
:cookie。Laravel 將密鑰用于所有加密的 cookie (包括會話 cookie),然后再將其交給用戶瀏覽器,并使用它解密從瀏覽器讀取的 cookie。這樣可以防止客戶端更改其 cookie 并為其授予管理員特權(quán)或模擬應(yīng)用程序中的其他用戶。加密的 cookie 是 Laravel 中的重要安全特性。
所有這些加密和解密操作均由Laravel通過 Encrypter
使用 PHP 內(nèi)置的安全工具處理,包括 OpenSSL。我們不會在這里仔細(xì)研究加密的工作原理,但是如果您想了解