破解图片防盗链的代码(asp/php)测试通过


Posted in PHP onJuly 02, 2010

php版的代码比较简单:

<?php 
$p=$_GET['p']; 
$pics=file($p); 
for($i=0;$i< count($pics);$i++) 
{ 
echo $pics[$i]; 
} 
?>

使用方法:将文件保存成i.php上传到根目录
将不能外链的图片地址改成http://你的域名p.php?p=图片地址

asp版,网上用的比较多的

<% 
Dim url, body, myCache 
url = Request.QueryString("url") 
Set myCache = new cache 
myCache.name = "picindex"&url 
If myCache.valid Then 
body = myCache.value 
Else 
body = GetWebData(url) 
myCache.add body,dateadd("d",1,now) 
End If 
If Err.Number = 0 Then 
Response.CharSet = "UTF-8" 
Response.ContentType = "application/octet-stream" 
Response.BinaryWrite body 
Response.Flush 
Else 
Wscript.Echo Err.Description 
End if 
'取得数据 
Public Function GetWebData(ByVal strUrl) 
Dim curlpath 
curlpath = Mid(strUrl,1,Instr(8,strUrl,"/")) 
Dim Retrieval 
Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP") 
With Retrieval 
.Open "Get", strUrl, False,"","" 
.setRequestHeader "Referer", curlpath 
.Send 
GetWebData =.ResponseBody 
End With 
Set Retrieval = Nothing 
End Function 
'cache类 
class Cache 
private obj 'cache内容 
private expireTime '过期时间 
private expireTimeName '过期时间application名 
private cacheName 'cache内容application名 
private path 'url 
private sub class_initialize() 
path=request.servervariables("url") 
path=left(path,instrRev(path,"/")) 
end sub 
private sub class_terminate() 
end sub 
public property get blEmpty 
'是否为空 
if isempty(obj) then 
blEmpty=true 
else 
blEmpty=false 
end if 
end property 
public property get valid 
'是否可用(过期) 
if isempty(obj) or not isDate(expireTime) then 
valid=false 
elseif CDate(expireTime)<now then 
valid=false 
else 
valid=true 
end if 
end property 
public property let name(str) 
'设置cache名 
cacheName=str & path 
obj=application(cacheName) 
expireTimeName=str & "expires" & path 
expireTime=application(expireTimeName) 
end property 
public property let expires(tm) 
'重设置过期时间 
expireTime=tm 
application.lock 
application(expireTimeName)=expireTime 
application.unlock 
end property 
public sub add(var,expire) 
'赋值 
if isempty(var) or not isDate(expire) then 
exit sub 
end if 
obj=var 
expireTime=expire 
application.lock 
application(cacheName)=obj 
application(expireTimeName)=expireTime 
application.unlock 
end sub 
public property get value 
'取值 
if isempty(obj) or not isDate(expireTime) then 
value=null 
elseif CDate(expireTime)<now then 
value=null 
else 
value=obj 
end if 
end property 
public sub makeEmpty() 
'释放application 
application.lock 
application(cacheName)=empty 
application(expireTimeName)=empty 
application.unlock 
obj=empty 
expireTime=empty 
end sub 
public function equal(var2) 
'比较 
if typename(obj)<>typename(var2) then 
equal=false 
elseif typename(obj)="Object" then 
if obj is var2 then 
equal=true 
else 
equal=false 
end if 
elseif typename(obj)="Variant()" then 
if join(obj,"^")=join(var2,"^") then 
equal=true 
else 
equal=false 
end if 
else 
if obj=var2 then 
equal=true 
else 
equal=false 
end if 
end if 
end function 
end class 
%>

使用方法:将文件保存成i.asp上传到根目录
将不能外链的图片地址改成http://你的域名/p.asp?url=图片地址
为方便大家使用,复制的代码,容易出现错误。特打包下载
PHP 相关文章推荐
一个PHP+MSSQL分页的例子
Oct 09 PHP
用来给图片加水印的PHP类
Apr 09 PHP
PHP STRING 陷阱原理说明
Jul 24 PHP
PHP 代码规范小结
Mar 08 PHP
php中检查文件或目录是否存在的代码小结
Oct 22 PHP
php设计模式之观察者模式的应用详解
May 21 PHP
深入php常用函数的使用汇总
Jun 08 PHP
php堆排序(heapsort)练习
Nov 13 PHP
微信公众平台实现获取用户OpenID的方法
Apr 15 PHP
提交表单后 PHP获取提交内容的实现方法
May 25 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
PHP 图片处理
Sep 16 PHP
用PHP为SHOPEX增加日志功能代码
Jul 02 #PHP
php操作excel文件 基于phpexcel
Jul 02 #PHP
PHP 多维数组排序(usort,uasort)
Jun 30 #PHP
PHP 数组遍历方法大全(foreach,list,each)
Jun 30 #PHP
PHP extract 将数组拆分成多个变量的函数
Jun 30 #PHP
PHP 反向排序和随机排序代码
Jun 30 #PHP
PHP 数组排序方法总结 推荐收藏
Jun 30 #PHP
You might like
分页详解 从此分页无忧(PHP+mysql)
2007/11/23 PHP
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
突发奇想的一个jquery插件
2010/11/19 Javascript
15条JavaScript最佳实践小结
2013/08/09 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
JavaScript中三种常见的排序方法
2017/02/24 Javascript
微信小程序自定义组件
2017/08/16 Javascript
关于Mac下安装nodejs、npm和cnpm的教程
2018/04/11 NodeJs
浅谈React 服务器端渲染的使用
2018/05/08 Javascript
监听angularJs列表数据是否渲染完毕的方法示例
2018/11/07 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
[01:36:19]Secret vs NB 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python梯度下降算法的实现
2020/02/24 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
用python实现前向分词最大匹配算法的示例代码
2020/08/06 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
HTML5+lufylegend实现游戏中的卷轴
2016/02/29 HTML / CSS
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
应用服务器有那些
2012/01/19 面试题
公司募捐倡议书
2014/05/14 职场文书
法人任命书范本
2014/06/04 职场文书
知识竞赛拉拉队口号
2014/06/16 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
授权委托书协议书
2014/10/16 职场文书
单位提档介绍信
2015/10/22 职场文书
MySQL创建管理子分区
2022/04/13 MySQL
详解Python中的for循环
2022/04/30 Python
Promise静态四兄弟实现示例详解
2022/07/07 Javascript