Уязвимый код
Маршрут возвращает любой профиль, если знаешь его ID. Сессия никак не учитывается — поэтому чужие секреты оказываются в твоих руках.
app.get('/api/users/:id', (req, res) => {
const requestedId = Number(req.params.id);
const user = users.find((u) => u.id === requestedId);
if (!user) {
return res.status(404).json({ error: 'пользователь не найден' });
}
// ❌ Сессия игнорируется — можно запрашивать чужие ID
return res.json({
id: user.id,
displayName: user.displayName,
role: user.role,
secret: user.secret
});
});