jsonp跨域时如何解决xss漏洞
解决安全性问题,主要涉及两点:
(1) 前后端约定jsonp请求的js的回调函数名
(2) 服务器端指定返回的数据格式为json
以下是事例代码:
1. 前端js发起ajax跨域jsonp请求:
$.ajax({ type: "GET", url: "http://xxx.com/getData", dataType: "jsonp", jsonp: "callbackParam", //自定义callback参数名称 jsonpCallback:"getData", //自定义callback的js函数名 success: function(data) { ... } });
2. 服务器端返回数据:
public function getData(){ //指定返回的数据格式为json header("Content-type: application/json"); $callback = $this->_param(‘callbackParam‘); //约定只接受某个js回调函数名 if($callback != ‘getData‘) { $callback = ‘getData‘; } $data = array(...); echo $callback.‘(‘.json_encode($data).‘)‘; exit; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。