• 首页
    • English
    • 中文
  • 关于我们
  • 服务项目
    • 谷歌SEO服务
    • WordPress建站服务
    • 谷歌ADS/SEM代运营
  • 项目案例
    • 医疗
    • 建材
    • 机械加工
    • 照明
    • 电商
    • 电脑硬件
  • 博客
    • 服务器运维
      • aliyun
      • 服务器安装
      • 宝塔面板
      • 虚拟化
      • 阿里云
      • Centos
      • linux
      • nginx
    • 电子商务
    • 免费资源
    • PHP
      • Magento
      • WordPress
    • 大数据采集
    • Python
    • Javascript
    • SEO
    • 未分类
  • 联系我们
What's Hot

机械模具加工公司网站设计案例

24 10 月, 2023

快速原型公司案例

24 10 月, 2023

陶瓷加工网站案例

24 10 月, 2023
Facebook Twitter Instagram
  • 中文
  • English
Facebook Twitter Instagram
VPSEO VPSEO
  • 首页
    • English
    • 中文
  • 关于我们
  • 服务项目
    • 谷歌SEO服务
    • WordPress建站服务
    • 谷歌ADS/SEM代运营
  • 项目案例
    • 医疗
    • 建材
    • 机械加工
    • 照明
    • 电商
    • 电脑硬件
  • 博客
    • 服务器运维
      • aliyun
      • 服务器安装
      • 宝塔面板
      • 虚拟化
      • 阿里云
      • Centos
      • linux
      • nginx
    • 电子商务
    • 免费资源
    • PHP
      • Magento
      • WordPress
    • 大数据采集
    • Python
    • Javascript
    • SEO
    • 未分类
  • 联系我们
VPSEO VPSEO
Home»linux»apache + php 实现文件下载防盗链和密码访问
linux

apache + php 实现文件下载防盗链和密码访问

chrispengcnBy chrispengcn7 8 月, 2021没有评论3 Mins Read
Facebook Twitter Pinterest LinkedIn Tumblr Email
Share
Facebook Twitter LinkedIn Pinterest Email

作为普通的网民来说,一般不需要知道也不用关心什么是盗链,不过如果你是网站的开发者或维护者,就不得不重视盗链的问题了。如果你刚刚开发完一个没有防盗链的带有文件下载功能的网站,挂上internet,然后上传几个时下非常热门的软件或电影并在网站内公布下载地址,让MSN上的所有好友都来体验一下你的杰作。不用多久就会发现网速出奇地变慢,甚至服务器托管中心的服务员会热情地打电话告诉你的网站流量很大,估计是网站受欢迎起来了,问你是不是该考虑加钱租用带宽更宽但价格更贵的网线了。在这个值得庆祝的时候赶快打开Google Analytics看看有多少人来光顾你的网站了吧,如果发现访客每天才十来个人,很遗憾地告诉你:你的网站资源不幸地被人盗链了。而且更糟糕的是,当你把网站上的文件和电影通通删光之后,网站仍然没有变快多少,从web服务器的访问日志里会发现疯狂的访问请求正从四面八方涌过来,web服务器为了迎接这批访客而没有时间处理正常的页面,这种状况可能会一直持续好几个周时间。

 

 

 

vipdownload.php

 

  1.  <?php 
  2. // $str='d3d3LmpiNTEubmV0IOiEmuacrOS5i+Wutg==';     //定义字符串 // echo base64_decode($str); //输出解码后的内容
  3. // $str='www.jb51.net 脚本之家'; //定义字符串 // echo base64_encode($str);  // 输出编码后的内容为: d3d3LmpiNTEubmV0IOiEmuacrOS5i+Wutg== 
  4. $pin = ""; if(!empty($_POST['pin'])){    $pin = $_POST['pin']; }
  5. if($pin = "" or $pin != "www.vpseo.com" ){?>
  6.  
  7. <link rel="stylesheet" href="vipdownload.css" type="text/css" media="screen" /><form method="post" class="searchform cf" action="" style="text-align:center;">  <input type="text" name="pin" id="pin" placeholder="Please input your VIP code">  <button type="submit" style="">Download</button></form>
  8.  
  9. <?php  }?>
  10. <?php  $pin = "";$file_address = "";$filecode = "";$file_name = "down.zip";     //下载文件名    $file_dir = "./down/";        //下载文件存放目录  $key = time(); 
  11.  if(!empty($_POST['pin'])){    $pin = $_POST['pin']; } 
  12. if (!empty($_GET['filecode']) )    
  13. {   $filecode = $_GET['filecode'];   $file_address = base64_decode ($filecode);     }   
  14. if (!empty($_GET['file']) && empty($_GET['filecode']))   {   $filecode = base64_encode($_GET['file']);   header("location:vipdownload.php?filecode=".$filecode);    } 
  15.  
  16. if ($pin == "www.vpseo.com") {
  17.  $pieces = explode("/", $file_address);  // end() 函数将数组内部指针指向最后一个元素,并返回该元素的值(如果成功);  $file_name = end($pieces);    //需要增加检查 文件类型 为 zip, pdf    //检查文件是否存在      // if (! file_exists ( $file_dir . $file_name )) {          if (! file_exists ( $file_address )) {        header('HTTP/1.1 404 NOT FOUND');      } elseif ( substr($file_name,-3) == "zip" or substr($file_name,-3) == "pdf" ){         //以只读和二进制模式打开文件     $file = fopen ( $file_address, "rb" );     //告诉浏览器这是一个文件流格式的文件      Header ( "Content-type: application/octet-stream" );      //请求范围的度量单位    Header ( "Accept-Ranges: bytes" );       //Content-Length是指定包含于请求或响应中数据的字节长度      Header ( "Accept-Length: " . filesize ( $file_address ) );       //用来告诉浏览器,文件是可以当做附件被下载,下载后的文件名称为$file_name该变量的值。  Header ( "Content-Disposition: attachment; filename=" . $file_name );          //读取文件内容并直接输出到浏览器     // echo fread ( $file, filesize ( $file_dir . $file_name ) );        echo fread ( $file, filesize ( $file_address ) );      fclose ( $file );         exit ();     } // endif fileexist
  18. }  // endif $($_POST['pin'] == "www.vpseo.com")
  19. if(!empty($_POST['pin']) && $pin != "www.vpseo.com" )
  20. {echo "<p style='text-align:center;'><br>VIP code error ! <br>Please contact our sale rep or send email to cl@banqcn.com to get your VIP code.<br></p>";
  21. // $filecode = authcode($file_address,'ENCODE',$key,0); //加密  调试  //  echo $filecode;                                      //调试 //  echo $file_address;}?>   
  22.  
  23.  
  24.  

禁止文件直接下载
vi .htaccess

 

<FilesMatch “~*.(bak|inc|lib|sh|tpl|lbi|dwt|pdf|zip)$”>
# order deny,allow
# deny from all

<IfModule mod_rewrite.c>
# 将 RewriteEngine 模式打开
RewriteEngine On

Rewritecond %{HTTP_HOST} ^(www.)?vpseo.com$ [nc]
Rewriterule ^(.*)$ http://www.vpseo.com/vipdownload.php?file=$1 [r=302,nc]

</IfModule>

 

</FilesMatch>

 

本方法实现了php 的密码访问。

通过修改,可以实现留下email 即可下载。

还有另外一种加密方式

.htpasswd 密码访问

Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
chrispengcn
  • Website

Related Posts

如何使用宝塔面板备份数据到阿里云OSS

7 8 月, 2021

nginx 反向代理简单配置

7 8 月, 2021

在Linux下通过命令行来操作使用Dropbox

7 8 月, 2021

centos7安装memcached以及phpmemcached扩展

7 8 月, 2021
Add A Comment

Leave A Reply Cancel Reply

*

code

导航
  • 首页
  • 关于我们
  • 服务项目
  • 项目案例
  • 博客文章
  • 联系我们
博客
  • 服务器运维
  • 服务器安装
  • nginx
  • PHP
  • WordPress
  • Python
  • Javascript
  • SEO
  • 电子商务
  • 大数据采集
  • 宝塔面板
  • 数据库
  • 电子商务
  • 虚拟化
  • 阿里云
导航
  • 首页
  • 关于我们
  • 谷歌SEO服务
  • 谷歌ADS/SEM代运营
  • WordPress建站服务
  • 项目案例
  • 博客
  • 联系我们
最新文章
  • 机械模具加工公司网站设计案例
  • 快速原型公司案例
  • 陶瓷加工网站案例
  • CNC数控加工日文网站案例
  • 触摸一体机数字标牌厂家网站案例
关于我们
关于我们

广州纬来科技有限公司
联系地址:广东省广州市番禺区富华中路富源二街18号合和大厦809

QQ : 13602156
Email : 13926026058@139.com
Contact: +86 13926026058

Facebook Twitter YouTube LinkedIn
© 2025 广州纬来科技有限公司 粤ICP备2023105857号-2
  • 首页
  • 关于我们
  • 谷歌SEO服务
  • 谷歌ADS/SEM代运营
  • WordPress建站服务
  • 项目案例
  • 博客
  • 联系我们

Type above and press Enter to search. Press Esc to cancel.