php简单防盗链实现方法

yipeiwu_com6年前PHP代码库

本文实例讲述了php简单防盗链实现方法。分享给大家供大家参考。具体如下:

<?php
$ADMIN = array(
  'defaulturl'=> '/zb_users/upload/202003/fy4db2ovh1y.gif',
  //盗链返回的地址
  'url_1'   => 'http://blog.qita.in/file',
  'url_2'   => 'http://blog.qita.in/file1',
);
$okaysites = array(
 'http://qita.in',
  'http://blog.qita.in', //白名单
  'http://blog.qita.in/1.html',
);
$reffer = $_SERVER['HTTP_REFERER'];
if ($reffer) {
  $yes = 0;
  while (list($domain, $subarray) = each($okaysites)) {
    if (ereg($subarray, "$reffer")) {
      $yes = 1;
    }
  }
  $theu = 'url_' . $_GET['site'];
  $file = $_GET['file'];
  if ($ADMIN[$theu] and $yes == 1) {
  header("Location: $ADMIN[$theu]/$file");
  } else {
    header("Location: $ADMIN[defaulturl]");
  }
} else {
  header("Location: $ADMIN[defaulturl]");
}
print_r($_SERVER['HTTP_REFERER']);
?>

希望本文所述对大家的php程序设计有所帮助。

相关文章

PHP令牌 Token改进版

正是由于使用了 base64 ,所以在把这个令牌通过 GET方法发送的时候,出现了问题。 比如:http://test/test.php?a=1+2 你用&...

浅析PHP substr,mb_substr以及mb_strcut的区别和用法

PHP substr()函数可以 分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mb_substr()/mb_strcut这个函数,mb_substr() /mb_s...

PHP之数组学习

今天学习了数组,可以说是PHP的数据应用中较重要的一种方式。PHP的数组函数众多,下面是我学习的小结,借此记之,便于以后鉴之……   一、数组定义:   数组的定义使用 array()方...

php如何执行非缓冲查询API

对于PHP的缓冲模式查询大家都知道,下面列举的例子是如何执行非缓冲查询API。 非缓冲查询方法一: mysqli <?php $mysqli = new mysqli(...

PHP中使用curl伪造IP的简单方法

curl简介: curl是一个利用URL语法在命令行方式下工作的文件传输工具。它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT,...