PHP中如何防止跨域名调用接口教程
用过ajax的童鞋就知道ajax可以跨域触发某个接口,但是由此引起一个任何域都可以调用的问题,这时候就要考虑用到防盗链技术了,在PHP中$_SERVER["HTTP_REFERER"],$_SERVER["HTTP_REFERER"]里放置的是链接到本页面的上一个页面的URL,假如你是直接进来的话,$_SERVER["HTTP_REFERER"]是没有值的。下面以一个简单的实例介绍一下,PHP如何防伪造提交数据:
1、非4dn.net调用的接口全部拒绝访问
<?php
$sheli = $_SERVER['HTTP_HOST'];if($sheli){$url = parse_url($sheli);if($url['path'] != '4dn.net'){exit('拒绝访问!');}}
?>
2、允许在4dn.net子域名间调用的方法
<?php
$sheli = $_SERVER['HTTP_HOST'];
if($sheli){$url = parse_url($sheli);$t=explode('.',$url['path']);$l=count($t);$domainStr=$t[$l-2].'.'.$t[$l-1];if($domainStr != '4dn.net') {echo('拒绝访问!');}}
?>
黑蜘蛛