我部署了一個的node js專案 執行了安全性掃描zeabur agent 出現兩個問題 這個系統允許任何人,即使沒有登入或任何特殊權限,也能查看所有註冊的使用者資料。這就像一棟大樓沒有上鎖的門,任何人都可以隨意進入並查看所有住戶的資訊。如果使用者資料包含敏感資訊,例如真實姓名、電子郵件或其他個人細節,這些資訊就會完全暴露給任何知道這個網址的人。這嚴重侵犯了使用者的隱私。
if (req.url === '/api/users' && req.method === 'GET') { // GET 請求:回傳所有使用者 res.writeHead(200); res.end(JSON.stringify(users));
} 建議修復
在允許查看使用者資料之前,要求使用者先登入並驗證他們的身份 (要做什麼)。這能確保只有經過授權的人才能存取這些資訊 (為什麼能保護)。如果沒有這個保護,任何知道這個系統網址的人都可以看到所有使用者資料,這可能導致個人資訊洩露 (如果沒有會怎樣)。 Why this matters: 這能保護使用者的隱私,防止他們的個人資料被未經授權的人看到。 這個系統允許任何人,即使沒有登入或任何特殊權限,也能新增使用者資料。這表示惡意人士可以隨意建立大量假帳號,或者將不當內容與這些假帳號連結。這就像一個沒有管理員的訪客登記簿,任何人都可以隨意寫上任何名字,導致資料庫充滿垃圾資訊,甚至影響系統的正常運作。這會破壞資料的完整性,並可能被濫用。
else if (req.url === '/api/users' && req.method === 'POST') { // POST 請求:接收資料 let body = '';
// 監聽資料流 (Stream) req.on('data', chunk => { body += chunk.toString(); });
req.on('end', () => { const newUser = JSON.parse(body); newUser.id = users.length + 1; users.push(newUser);
res.writeHead(201); res.end(JSON.stringify(newUser)); });
}
建議修復
在允許新增使用者資料之前,要求使用者先登入並驗證他們的身份 (要做什麼)。這能確保只有經過授權的人才能新增資料,防止惡意人士隨意建立假帳號或破壞資料 (為什麼能保護)。如果沒有這個保護,任何人都可以隨意新增資料,導致資料庫混亂,甚至被用來進行惡意活動 (如果沒有會怎樣)。 Why this matters: 這能保護系統資料的準確性和完整性,防止被濫用。
請問這樣的問題該如何處理呢 BTW 請問github 登入後的授權也是使用token嗎