PHP中如何防止跨域調(diào)用接口
用過ajax的童鞋就知道ajax可以跨域觸發(fā)某個接口,但是由此引起一個任何域
都可以調(diào)用的問題,這時候就要考慮用到防盜鏈技術(shù)了,
在PHP中$_SERVER["HTTP_REFERER"],$_SERVER["HTTP_REFERER"]里放置
的是鏈接到本頁面的上一個頁面的URL,假如你是直接進(jìn)來的話,
$_SERVER["HTTP_REFERER"]是沒有值的。
下面以一個簡單的實(shí)例介紹一下,PHP如何防偽造提交數(shù)據(jù):
非9streets.cn調(diào)用的接口為拒絕訪問:
PHP代碼
//判斷refer防止別的域調(diào)??
$refer = $_SERVER['HTTP_REFERER'];??
if($refer){??
? ? $url = parse_url($refer);??
? ? if ($url['host'] != '9streets.cn') {??
? ? ? ? ?exit('拒絕訪問!');??
? ? }? ?
}??
允許在子域名間調(diào)用的方法
?PHP代碼
//判斷refer防止別的域調(diào)用??
$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('拒絕訪問!');??
? ? }? ?
}??
本文來源:https://www.fushouyu.com/shouyou/194.html