PHP使用过程中常用的两种防盗代码,亲测可用:
代码一:
<?php //防盗链域名,多个用|隔开,如:123.com|abc.com 关闭请留空 define('FDL_URL','域名'); //判断域名防盗链 if(!is_referer(FDL_URL)){ //header('HTTP/1.1 403 Forbidden'); //exit('403');//发现盗链返回403代码,也可以自行弄跳转 header("Location: http://www.baidu.com",TRUE,301); exit; } //判断防盗链域名 function is_referer($domain){ //没有设置防盗链 if($domain=='') return true; $referer = strtolower($_SERVER['HTTP_REFERER']); $agent = strtoupper($_SERVER['HTTP_USER_AGENT']); //部分手机浏览器没有来路 if(empty($referer)){ if(preg_match("/(iPhone|iPad|iPod|Android|Linux)/i", $agent)){ return true; } }else{ //开始验证 $ext = explode("|",$domain); for($i=0;$i<count($ext);$i++){ if(strpos($referer,strtolower($ext[$i])) !== FALSE ){ return true; } } } return false; } ?>
代码二:
<?php define('REFERER_URL', '域名'); define('ERROR', '<html><meta name="robots" content="noarchive"><head><title>自行修改title</title></head><style>h1{color:#00A0E8; text-align:center; font-family: Microsoft Jhenghei;}p{color:#f90; font-size: 1.2rem;text-align:center;font-family: Microsoft Jhenghei;}</style><body bgcolor="#000000"><table width="100%" height="100%" align="center"><td align="center"><h1>本站已开启API防盗</h1><p>请勿盗链</p></table></body></html>'); if(!empty(REFERER_URL)) { @$referer = $_SERVER['HTTP_REFERER'] ? $_SERVER['HTTP_REFERER'] : base64_decode($_POST['referer']); $refererhost = parse_url($referer, PHP_URL_HOST); if(!in_array(strtolower($refererhost),explode("|", strtolower(REFERER_URL)))) { header('HTTP/1.1 403 Forbidden'); exit(ERROR); } } ?>
大家在使用中可以按生产情况自行集成