CORS 配置用通配符 * 会有安全风险吗?
我们后端为了方便开发,把 CORS 的 Access-Control-Allow-Origin 设成了 *,现在上线前有点担心。听说这样会让任何网站都能跨域请求我们的 API,是不是真的有风险?
特别是我们的接口会返回用户敏感数据,比如个人信息和订单记录。虽然前端是自家域名,但怕别人写个恶意网页偷偷调用我们的接口。
后端用的是 Express,现在的配置大概是这样的:
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
next();
});
有没有办法既支持多域名又不开放给所有人?
这样既解决了安全问题,又不用每个域名都单独配置。搞定收工。