[英]How to protect sensitive routes in express.js
所以我正在構建一個運行 express js 的節點 js 應用程序,我在 app.js 中設置了這樣的路由:
router.get("/db/:dbName", (req, res) => {
var dbName = req.params.dbName
if (dbName) {
var coll = db.collection(dbName);
coll.find().toArray()
.then(results => {
res.send(results);
})
.catch(err => {
console.error(err)
})
} else {
console.log("put a dbName")
}
})
所做的是單擊一個按鈕,它從 mongodb 數據庫中讀取並輸出“dbName”集合中的文檔。 然后我想到了 go 到一個單獨的選項卡並輸入“localhost:3000/db/collection”,當然它仍然可以在沒有按鈕的情況下工作(即它返回集合中的所有文檔)。 我的問題是,有什么方法可以防止這種行為,基本上只有在您使用按鈕時才使路線可訪問。
您可以使用中間件並查找僅通過單擊按鈕傳遞的值。 如果該值未傳遞給服務器,您可以檢查它並相應地采取措施
function middleware(req, res, next) {
if(req.value) {
next()
} else {
return "Some error"
}
}
app.route('/route', middleware, function(req, res) {})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.