在開發的時候,可以操作的功能總是讓人腦洞大開想多做很多,但在安全性這塊也特別容易遺忘。
接下來我們就來聊聊哪些內容不該放進 extension,以及該如何避免常見漏洞吧。
以下是幾個需要特別避免或謹慎處理的項目:
*://*/* 這種 host permission,除非必要。盡量只給自己需要的 host domain,例如 https://gitlab.com/*。eval()、new Function()、或把 user input 當作程式碼執行。innerHTML,以防 XSS。textContent 或安全的 sanitized HTML 插入。chrome.storage,尤其是 chrome.storage.sync(資料可同步到雲端)。“你能做的事很多,但你應該做最必要的事。”
這就是安全設計的哲學:功能 + 最小權限 + 不風險擴散。