Node.js Web 跨域
1.8.1 【必须】限定JSONP接口的callback字符集范围
- JSONP接口的callback函数名为固定白名单。如callback函数名可用户自定义,应限制函数名仅包含 字母、数字和下划线。如:
[a-zA-Z0-9_-]+
1.8.2 【必须】安全的CORS配置
- 使用CORS,应对请求头Origin值做严格过滤、校验。具体来说,可以使用“全等于”判断,或使用严格的正则进行判断。如:
^https://domain\.qq\.com$
// good:使用全等于,校验请求的Origin
if (req.headers.origin === 'https://domain.qq.com') {
res.setHeader('Access-Control-Allow-Origin', req.headers.origin);
res.setHeader('Access-Control-Allow-Credentials', true);
}
关联漏洞:中风险 - XSS,中风险 - CSRF,中风险 - CORS配置不当