CORS配置到底该怎么写才安全?
我在本地开发时调后端接口老是被CORS拦住,试过在Nginx里加add_header 'Access-Control-Allow-Origin' '*';,虽然能通了,但听说这样不安全。那到底应该怎么配才既能让前端正常请求,又不会把接口暴露给所有人?
后端是用Node写的,现在临时用了这个配置:
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
next();
});
但上线前肯定得改,只是不确定该改成什么值,求指点!
*换成具体的域名。最常见的写法是这样的:
如果前端请求需要带cookie或者authorization头,得再加一个配置:
注意哈,用credentials的时候,Origin 绝对不能用
*,必须指定具体域名,前端那边也要改成credentials: 'include'。开发环境就把 localhost 加进去,生产环境换成你实际的域名就行。复制过去试试,有问题再调。