jsonp类型的接口调用中如何做安全防护

说到jsonp安全性的防范,我们可以从以下几点出发:1、 防止callback参数意外截断js代码,特殊字符单引号双引号,换行符均存在风险;2、 防止callback参数恶意添加标签(如script),造成XSS漏洞;3、 防止跨域请求滥用,阻止非法站点恶意调用。

JSONP

其中第三个主流的解决措施可以通过来源refer白名单匹配,以及结合token机制来限制。

而前两点,传统的做法分为以下几种:

1、 白名单原则,通过正则表达式来控制,如^[a-zA-Z0-9]+$来控制仅允许字母与数字,哈,其它的自己看着写;

2、 reponse中添加header头部,强制指定MIME类型,避免按HTML方式解析,防止XSS漏洞。这似乎是个很完美的解决方案。但是十分诡异的是,在某些版本的火狐浏览器下,直接访问MIME类型为JAVASCRIPT的请求时,浏览器仍然会按照HTML解析。或许是该浏览器设计的缺陷,但它忽略了我们设置的header。但目前而言无法保证所有浏览器严格按照MIME类型解析,将来可以成为标配。

相关推荐:
现在的第三方远程数据库管理可视化工具比较多,如:Navicat、SQLyog、MySQL workbench 等,但发现正确的账户信息连接时报 2059 错误,怎么了?这是因为 MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可 …
App Transport Security(应用程序安全传输),简称ATS,是苹果在iOS 9 中首次推出的一项隐私安全保护功能,启用ATS后,它会屏蔽明文HTTP资源加载,强制App通过HTTPS连接网络服务,通过传输加密保障用户数 …
假设funcName为函数名字,用如下方法就可以达到目标 try{ if(typeof(eval(funcName))=="function"){ funcName(); } }catch(e){ //alert("not function"); } 一定要添加try catch块,否则不起作用。
首先很明显地说明了设置的索引太长,太长就会导致性能问题,所以就提示咯。而对于varchar(200)以上字符的字段,没有必要做那么长的索引,可以阶段的(部分),修改为: 字段如下: f_type int(11), f_key v …
2018年 10 月,香港国泰航空披露包含 940 万乘客资料的信息系统被未经授权获取。未获授权获取的资料包括了个人身份信息和飞行记录,此外还有部分信用卡。 香港个人数据隐私专员上周公布了调查报告,称国泰 …
拿起手机扫一扫即可带走我!