最近爆紅的 Vibe Coding 事件,震撼了整個開發圈:
有人寫了一個輸入框,讓使用者輸入 key,結果 Vibe Coding 生成的程式碼裡,直接用了「他自己私人的 key」。最後大家都在用那個 key,導致帳單飆破 一萬多塊。
這件事提醒我們:
今天,我想用這個案例,聊聊開發者日常裡最常見卻常被忽略的修仙心法 —— 把敏感資訊放在 .env
。
.env
:修仙者的儲物袋在 Magento、Laravel,甚至多數框架裡,我們都會用 .env
來保存:
這就像修仙者的儲物袋,裡面裝的都是核心法寶,不能隨便曝光。
範例:
APP_ENV=production
APP_DEBUG=false
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=magento
DB_USERNAME=magento_user
DB_PASSWORD=secret123
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
程式碼裡只要呼叫 env('DB_HOST')
就能拿到,不需要硬寫在程式裡。
.env
vs env.php
在 Magento 2 裡,除了 .env
,還有一個常見的檔案叫做 app/etc/env.php
。
很多新手會搞混,這兩個的差異其實是:
.env
.gitignore
。env.php
<?php
return [
'backend' => [
'frontName' => 'admin'
],
'db' => [
'connection' => [
'default' => [
'host' => '127.0.0.1',
'dbname' => 'magento',
'username' => 'magento_user',
'password' => 'secret123',
'active' => '1'
]
]
],
'crypt' => [
'key' => 'random-generated-key'
],
'cache' => [
'frontend' => [
'default' => ['backend' => 'Cm_Cache_Backend_Redis'],
'page_cache' => ['backend' => 'Cm_Cache_Backend_Redis']
]
],
];
env.php
,不像 .env
需要額外載入。👉 差異總結:
.env
:跨框架通用,適合存放金鑰、token,避免硬編碼。env.php
:Magento 專屬,記錄 DB 與快取等核心設定。如果要讓 Magento 更安全,金流金鑰/第三方 API key 建議用 .env
管理,再透過 env()
或自訂 config 去讀,不要直接寫死在 env.php
。
這次 vibe coding 出包的點,就是沒有把「金鑰管理」做好。
如果當初有 .env
:
.env
或 DB這也提醒我們,AI 幫我們寫程式可以很快,但一定要 自己檢查 key、憑證是否正確管理。
AI 可以加速,但 Code Review 是最後的保護罩。
.env
.env
是否在 .gitignore
就像修仙者出關前,總要有人幫你檢查靈力是否穩定,否則一劫不過,前功盡棄。
倒數第二天,我們談的不是高深的快取法術,而是最基本的修仙心法 —— 保護你的法寶。.env
是你的儲物袋,env.php
是你的根基大陣,Code Review 是你的護身符。
別讓自己辛苦修煉的成果,因為一個小小的 key 管理失誤,而毀於一旦。
明天,就是最後的大結局。
今天,讓我們記住這句話:
技術的深度,往往藏在最簡單的細節裡。