这是从客户端设置服务器端 cookie 的良好/安全方法吗?
Is this a good / secure way to set server side cookies from client
我正在使用一个名为reactjs的单个应用程序框架,我遇到的问题是设置httpOnly cookie,因为它们无法从客户端设置/读取,我需要找出一种方法如何使用express。
我想出的一个想法是向像/cookie:data
这样的路由发出 post 请求,其中数据是需要存储在 cookie 中的令牌值,因此:
app.post('/cookie:data', function(req, res) {
// Set cookie here
res.send(200)
})
我犹豫的问题是令牌包含用于保护 API 的唯一用户标识符,我不确定我是否通过以这种方式设置 cookie 来公开这一点。
或者,与其使用:data
而是弄清楚如何从 post 请求中获取数据(json 对象)会很有帮助
编辑:我能想到的一个问题是任何人都可以发布到这条路线并设置不同的 cookie?保护它的方法是什么?
编辑2:这是我用来代理 api 调用的快速设置(仅与澄清评论相关)
app.use('/api', function (req, res) {
let url = config.API_HOST + req.url
req.pipe(request(url)).pipe(res)
})
假设您要将所有以 /api
开头的请求代理给第三方,但 /api/users
除外,您希望"手动"执行,因为它返回您需要的令牌:
app.post('/api/users', function(req, res) {
let url = config.API_HOST + req.url;
let apiRequest = request.post(url, function(err, response, body) {
// Responses are just examples, you should tailor them to your situation
if (err) {
return res.sendStatus(500);
} else if (response.statusCode !== 200) {
return res.sendStatus(response.statusCode);
} else {
res.cookie('token', body).send('OK');
}
});
req.pipe(apiRequest);
})
app.use('/api', function (req, res) {
let url = config.API_HOST + req.url
req.pipe(request(url)).pipe(res)
})
相关文章:
- 使用Javascript检查测验答案的最安全方法
- 了解HTTP请求中的referr/referrer的安全方法是什么
- 检测SelectBox选择的更安全方法
- 选择所有没有值属性的单选按钮的最安全方法
- 在 JavaScript 中使用 PHP 变量的安全方法
- 检查数组元素是否存在的安全方法
- json 一个 html 的安全方法
- 使用 php ajax jquery 从 mysql 发送或获取数据 - 什么是安全方法
- 在窗口中使用“事件处理程序”是否是确定窗口是否支持给定事件处理程序的安全方法
- 将日期参数传递给 MVC 操作的 ajax 调用的安全方法
- 动态包含javascript文件的安全方法
- 这是在 JavaScript 中区分 0 和空字符串的最安全方法
- 获取任何 JavaScript 值或对象的字符串表示形式的安全方法
- 将基于 JavaScript 的 MD5 值传递给 PHP 的安全方法
- 文档共享/聊天应用程序的安全方法
- 确定是否可以接受评论请求的安全方法
- 用jQuery追加新元素的安全方法是什么?
- 将此变量传递给javascript方法的安全方法适用于所有浏览器
- 让用户在nodejs中注册handelbars helper的安全方法
- 这是将一个对象原型复制到另一个对象原型的安全方法吗?