我可能對這個(gè)概念仍然有點(diǎn)困惑。但。在這種情況下,我有一個(gè)聯(lián)系表單,在發(fā)送時(shí),它會(huì)調(diào)用我自己的 laravel 后端 api,它將為我處理發(fā)送電子郵件功能。我想使用 api 密鑰來保護(hù)它,但我不希望我的 api 密鑰暴露在前端的任何地方。我的 Vue/Nuxt 應(yīng)用程序正在服務(wù)器上運(yùn)行。所以環(huán)境變量應(yīng)該是答案 - 我猜。不過,如果我這樣做: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 })當(dāng)然,在代碼中它是隱藏的,但是在前端檢查它,可見的地方都是 api 密鑰。如果密鑰是當(dāng)今的解決方案,那么推薦使用密鑰進(jìn)行安全保護(hù)的方法是什么?
1 回答

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