我正在与一个单一的应用程序框架叫reactjs,我遇到的问题是设置httpOnly cookie,因为他们不能从客户端设置/读取我需要弄清楚如何使用快递。我想出了这是一个很好的/安全的方式来设置服务器端Cookie从客户端
一个想法是做一个POST请求像/cookie:data
的路线,其中的数据是令牌的价值需要被存储在cookie中,因此:
app.post('/cookie:data', function(req, res) {
// Set cookie here
res.send(200)
})
的问题,我很犹豫该令牌是否包含用于保护API的唯一用户标识符,并且我不确定我是否通过这种方式设置cookie来公开此信息。的
或者不使用:data
将是有益弄清楚如何从POST请求获取数据(JSON对象)
编辑:我能想到的 一个问题是,任何人都可以发布到这条路线和设置不同的饼干?什么是保护它的方法?
编辑2: 这是快速设置我使用代理API调用(仅用于澄清评论相关)
app.use('/api', function (req, res) {
let url = config.API_HOST + req.url
req.pipe(request(url)).pipe(res)
})
是不是更容易设置非httpOnly cookie?在安全性方面,我没有看到如何通过服务器端API设置任何cookie值更不安全。此外,无论如何,唯一的用户标识符将以任何方式暴露,因此使用HTTPS似乎是一项强制性要求。 – robertklep
@robertklep这里的想法是找出一个可行的方法来设置httpOnly cookie,非httpOnly的不是我的选择,我怕因为他们的本性,能够通过js访问它们。 HTTPS也在保护Cookie的情况下。 – Ilja
您想要在cookie中存储的数据来自哪里?我认为它不是来自你自己的服务器?如果您的FE正在调用第三方API,那么通过您自己的服务器代理对该API的请求是不是一个想法?对于一个严重的攻击者来说,如果他们无论如何都可以控制哪些cookies被设置(通过调用'/ cookie:data'),那么无法读取cookie内容可能不会成为障碍。 – robertklep