【安全测试】【前端】CORS、JSONP劫持防御
CORS简介
CORS:全称是"跨域资源共享"(Cross-origin resource sharing)。
扩展:https://www.cnblogs.com/sloong/p/cors.html;
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS。
CORS劫持防御
- 不要配置“Access-Control-Allow-Origin”为通配符 “* ” ,而且更为重要的是,要严格效验来自请求数据包中的“Origin”的值。当收到跨域请求的时候,要检查“Origin” 的值是否是一个可信的源,还要检查是否为null 。
- 避免使用 “Access-Control-Allow-Credentials: true”(请求中带cookie )。
- 减少“Access-Control-Allow-Methods”所允许的方法(只需要配置你所需要的即可)。
JSONP简介
Jsonp 全称“填充式JSON”(JSON with Padding) ,是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。
扩展:https://blog.csdn.net/hansexploration/article/details/80314948。
JSONP劫持防御
- 严格安全的实现CSRF方式调用JSON文件:限制Referer、部署一次性Token等。
- 严格安装JSON格式标准输出Content-Type及编码(Content-Type: application/json;charset=UTF-8)。
- 严格过滤callback函数名(URL中常见参数名也有:cb、jsoncb、call、jsoncall、cback、callback、json、jsonp、email等)及JSON里数据的输出。