我正在嘗試撰寫一個用戶輸入資訊的網站,并通過 JavaScript 將其傳遞到后端 (node.js/express.js)。我不希望任何人都能夠將 JSON 發布到服務器,只希望網站的代碼。我不確定如何執行此操作,因為我無法使用授權密鑰,因為代碼在客戶端時可用。
服務器使用在 node.js 上運行的 express.js,前端只是從 HTML 檔案觸發的 JavaScript。
任何幫助表示贊賞!
uj5u.com熱心網友回復:
簡短的回答:你不能。
長答案:
一旦您的 API 在 Internet 上公開,只要它具有網路功能,任何東西都可以連接到它。Telnet、HTTP、Go 程式、Node.js 腳本、Python 腳本等。
您可以通過使用 CORS 策略、授權標頭、用戶代理標頭、參考標頭、速率限制器等來限制您的 API 訪問,但這只是一種威懾,一切都可能被惡意用戶欺騙。
在我看來,你不應該擔心這個,真的。如果您真的很想要安全性,并且不希望其他人訪問您的 API,請考慮使用 JWT 或使用安全 cookie 的會話來實作用戶身份驗證系統。這是保護端點的最佳方式。
查看下面的這些 OWASP 文章,了解有關 API 安全性的更多資訊。
- OWASP頂級API
- OWASP 安全休息
如果您想了解有關 Express 中安全 cookie 和用戶身份驗證的更多資訊,可以查看以下文章:
- 在 Express 中發送 Cookie
- 快速會話管理
- 實作安全的、僅 HTTP 的 Cookie
我還有一篇好文章,它是用 Go 撰寫的,但您也可以修改 Express.js 中的概念。這是鏈接。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/343610.html
標籤:javascript 表达
上一篇:'無法獲取/api/items'
