php 允许二级域名外部提交

180it 2020-12-04 AM 2362℃ 0条
 //禁止外部提交-----------
$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : NULL;
$host = $_SERVER['HTTP_HOST'];
/*
echo '提交过来的地址:'.$referer;
echo '<br>';
echo '本站域名:'.$host;
echo '<br>';
echo '主域名:'.getTopHost($host);
*/

if (!$referer){exit('非法操作');}

if(strpos($host,getTopHost($origin)) !== false){ 
//echo '正常'; 
}else{
echo '非法操作';
exit;
}
//禁止外部提交-----------

//获取顶级域名
function getTopHost($url){
 $url = strtolower($url);  //首先转成小写
 $hosts = parse_url($url);
 $host = $hosts['host'];
 //查看是几级域名
  $data = explode('.', $host);
  $n = count($data);
  //判断是否是双后缀
  $preg = '/[\w].+\.(com|net|org|gov|edu)\.cn$/';
  if(($n > 2) && preg_match($preg,$host)){
   //双后缀取后3位
   $host = $data[$n-3].'.'.$data[$n-2].'.'.$data[$n-1];
  }else{
   //非双后缀取后两位
   $host = $data[$n-2].'.'.$data[$n-1];
  }
  return $host;
}
支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

php 允许二级域名外部提交