PHP中如何防止跨域调用接口
用过ajax的童鞋就知道ajax可以跨域触发某个接口,但是由此引起一个任何域都可以调用的问题,这时候就要考虑用到防盗链技术了,在PHP中$_SERVER["HTTP_REFERER"],$_SERVER["HTTP_REFERER"]里放置的是链接到本页面的上一个页面的URL,假如你是直接进来的话,$_SERVER["HTTP_REFERER"]是没有值的。下面以一个简单的实例介绍一下,PHP如何防伪造提交数据:
非9streets.cn调用的接口为拒绝访问:
PHP代码
//判断refer防止别的域调
$refer = $_SERVER['HTTP_REFERER'];
if($refer){
$url = parse_url($refer);
if ($url['host'] != '9streets.cn') {
exit('拒绝访问!');
}
}
允许在子域名间调用的方法
PHP代码
//判断refer防止别的域调用
$refer = $_SERVER['HTTP_REFERER'];
if($refer){
$url = parse_url($refer);
$t = explode('.',$url['host']);
$l = count($t);
$domainStr = $t[$l-2].'.'.$t[$l-1];
if ($domainStr != '9streets.cn') {
exit('拒绝访问!');
}
}
posted on 2013-04-09 18:27 liuyong1855 阅读(721) 评论(0) 编辑 收藏 举报
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步