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类型解析,将来可以成为标配。

相关推荐:
配置时区的命令是: $sudo dpkg-reconfigure tzdata(root下无须sudo) 它会改这两个文件: 1. /etc/timezone 2. /etc/localtime 第一个文件写的是系统的时区,国内默认为 Asia/Shanghai 第二个文件还可以 …
有时候为了方便,我们可能通过搜索功能搜索某软件的相关的内容,直接全删就=卸载了,其实有时候是不行的,特别是安装时或启动时向我们索要过权限的。 这些软件包含哪些呢,如自带了驱动的,像boom音频改善 …
在Mac下,我们和Win一样都喜欢装一些软件,有时候是临时用,但是等到卸载的时候却并不是那么地简单,似乎有些很多的区别。 今天,例举了Mac下常见的几种软件卸载的方式。 1、PKG向导安装的 看这:https://w …
SSH服务是管理linux平台的最便捷的方式之一,但是若你在未配置私钥的情况下进行管理时,恶意者也会通过手段来扫描你的SSH服务,从而进行暴力破解或攻击。 SSH服务被暴力破解很可能直接危及你的linux平台安 …
其实就是换行符的系统默认常量。 unix系列用 \n windows系列用 \r\n mac用 \r PHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性。 如: <?php echo PHP_EOL; //windows平台相当于 echo "\r\n"; …
拿起手机扫一扫即可带走我!