保障Web应用安全:防范不安全直接对象引用与拒绝服务攻击
1. 避免使用不安全的直接对象引用
在生成网页时,应用程序常常会使用对象的名称、标识符或键。然而,有时它们会忘记验证用户对特定对象的访问权限。当经过身份验证的用户仍能访问本不应访问的对象时,就会出现问题,他们只需知道或猜测其他对象的键即可。
例如,有一个内存数据库 db 存储用户数据,用户可以通过 /settings/:id 页面登录并查看数据:
// Middleware to validate that users are authenticated
app.all('*', function (req, res, next) {
if(req.session.isGuest()) {
res.send(401);
return;
}
next();
});
app.get('/settings/:id', easySession.isLoggedIn(), function (req, res) {
res.json(db[req.params.id]);
});
当Johann访问 /settings/1 时,他会看到如下信息:
{
"username": "johann",
"password": "pw",
"name": "Johann",
"
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



