破解图片防盗链的代码(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学习笔记 php中面向对象三大特性之一[封装性]的应用
Jun 13 PHP
PHP flock 文件锁详细介绍
Dec 29 PHP
php 地区分类排序算法
Jul 01 PHP
php密码生成类实例
Sep 24 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
php中mail函数发送邮件失败的解决方法
Dec 24 PHP
php实现每天自动变换随机问候语的方法
May 12 PHP
CI框架整合widget(页面格局)的方法
May 17 PHP
PHP实现清除MySQL死连接的方法
Jul 23 PHP
浅谈PHP中关于foreach使用引用变量的坑
Nov 14 PHP
CI框架入门之MVC简单示例
Nov 21 PHP
PHP实现简单的计算器
Aug 28 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新手上路(十)
2006/10/09 PHP
使用php来实现网络服务
2009/09/15 PHP
php一个找二层目录的小东东
2012/08/02 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
2013/06/23 PHP
php比较两个绝对时间的大小
2014/01/31 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
PHP 将dataurl转成图片image方法总结
2016/10/14 PHP
PHP链表操作简单示例
2016/10/15 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
node.js实现爬虫教程
2020/08/25 Javascript
JS调用Android、Ios原生控件
2017/01/06 Javascript
JS 调试中常见的报错问题解决方法
2017/05/20 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
javscript 数组扁平化的实现
2020/02/03 Javascript
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
全网小程序接口请求封装实例代码
2020/11/06 Javascript
python分割和拼接字符串
2013/11/01 Python
详解Python的Django框架中的通用视图
2015/05/04 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
财务部岗位职责
2013/11/19 职场文书
父亲八十大寿答谢词
2014/01/23 职场文书
团代会宣传工作方案
2014/05/08 职场文书
董事长岗位职责
2015/02/13 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
赞美教师的句子
2019/09/02 职场文书
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android
JavaScript 对象创建的3种方法
2021/11/17 Javascript
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS