博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP如何禁止图片文件的被盗链
阅读量:6248 次
发布时间:2019-06-22

本文共 1464 字,大约阅读时间需要 4 分钟。

hot3.png

1、假设充许连结图片的主机域名为:

2、修改httpd.conf

 SetEnvIfNoCase Referer "^http://www.test.com/" local_ref=1

<FilesMatch ".(gif|jpg)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch> 
 
这个简单的应用不光可以解决图片盗链的问题,稍加修改还可以防止任意文件盗链下载的问题。

使用以上的方法当从非指定的主机连结图片时,图片将无法显示,如果希望显示一张“禁止盗链”的图片,我们可以用mod_rewrite 来实现。

首先在安装 apache 时要加上 --enable-rewrite 参数加载 mod_rewrite 模组。

假设“禁止盗链”的图片为abc.gif,我们在 .htaccess 中可以这样配置:

 

如果写在httpd.conf里,要写在

<IfModule ssl_module>

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

</IfModule>

之前

 

 

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://( /.*$ [NC]
RewriteRule .(gif|jpg)$  [R,L] 

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^(.+)diaoyumi/(.*)$ [NC]

RewriteCond %{REQUEST_URI} ^(.+)diaoyumi/data/(.*)$ [NC]

RewriteRule .(png|gif|jpg)$ http://localhost/diaoyumi/default_img.png [R,L]

当主机的图片被盗链时,只会看到 abc.gif 这张“禁止盗链”的图片!

一段防盗连的PHP代码

<?php

$ADMIN[defaulturl] = "盗链返回的地址
$okaysites = array(""); //白名单
$ADMIN[url_1] = "下载地点1
$ADMIN[url_2] = "";//下载地点2,以此类推
$reffer = $HTTP_REFERER;
if($reffer) {
$yes = 0;
while(list($domain, $subarray) = each($okaysites)) {
if (ereg($subarray,"$reffer")) {
$yes = 1;
}
}
$theu = "url"."_"."$site";
if ($ADMIN[$theu] AND $yes == 1) {
header("Location: $ADMIN[$theu]/$file");
} else {
header("Location: $ADMIN[defaulturl]");
}
} else {
header("Location: $ADMIN[defaulturl]");
}
?>

使用方法:将上述代码保存为dao4.php

转载于:https://my.oschina.net/zzlzheng/blog/684111

你可能感兴趣的文章
进程与线程
查看>>
git 创建本地分支、提交到远程分支
查看>>
什么是http?
查看>>
pthreads v3下的同步处理synchronized
查看>>
10.第一个小项目
查看>>
SDS(Simple Dynamic String)一个简易动态字符串库
查看>>
swfit-pod使用
查看>>
(九)easyUI之选项卡
查看>>
日志分析工具ELK(三)
查看>>
PAT (Advanced Level) 1049. Counting Ones (30)
查看>>
HDU 5763 Another Meaning
查看>>
session详解
查看>>
scroll滚动条
查看>>
mysql链接超时错误
查看>>
Win10 安装 Linux子系统 Ubuntu18.04 / Kali Linux 的体验
查看>>
才发现用git Gui也能上传项目到gitHub,下面分享一下经验
查看>>
P1462 通往奥格瑞玛的道路
查看>>
关于ajax
查看>>
一份关于jvm内存调优及原理的学习笔记
查看>>
怎么查看80端口占用情况- 如何查看端口占用情况?
查看>>