我可能對這個概念仍然有點困惑。但。在這種情況下,我有一個聯系表單,在發送時,它會調用我自己的 laravel 后端 api,它將為我處理發送電子郵件功能。我想使用 api 密鑰來保護它,但我不希望我的 api 密鑰暴露在前端的任何地方。我的 Vue/Nuxt 應用程序正在服務器上運行。所以環境變量應該是答案 - 我猜。不過,如果我這樣做:this.$axios.$post('http://localhost/someMailFunc?apk=' + process.env.API_KEY, { name: name, subject: subject, email: email, message: message, }).then(response => { // somecomplete }).catch(e => { // somecatch })當然,在代碼中它是隱藏的,但是在前端檢查它,可見的地方都是 api 密鑰。如果密鑰是當今的解決方案,那么推薦使用密鑰進行安全保護的方法是什么?
1 回答

神不在的星期二
TA貢獻1963條經驗 獲得超6個贊
我認為在這個用例(聯系表單)中,API KEY 并不是保護您的 api/聯系表單的方法。
在聯系表格中,您需要確保什么?
提交機器人=>解決方案:Captcha(例如:Google Captcha)
被邪惡的人重復提交 =>解決方案:在您的 API 中實現驗證功能,以防止驗證代理和 IP 源。
直接通過 http 請求提交(不使用您的 Web 表單)=>解決方案:在您的 API 中實施域約束(僅允許從您的 Web 域提交)
中間人喜歡邪惡代理(盜竊和數據操縱) =>解決方案在您的 API 中實施 HTTPS
如果您的 API 需要 APIKEY,并且該 API 是由瀏覽器請求的,則您的 APIKEY 將始終對開發工具可見。
- 1 回答
- 0 關注
- 264 瀏覽
添加回答
舉報
0/150
提交
取消