破解图片防盗链的代码(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下实现折线图效果的代码
Apr 28 PHP
PHP 文件上传功能实现代码
Jun 24 PHP
一步一步学习PHP(1) php开发环境配置
Feb 15 PHP
简单的php数据库操作类代码(增,删,改,查)
Apr 08 PHP
PHP内核探索:变量概述
Jan 30 PHP
ThinkPHP3.1新特性之内容解析输出详解
Jun 19 PHP
php的ddos攻击解决方法
Jan 08 PHP
PHP中你应该知道的require()文件包含的正确用法
Jun 12 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
Jul 06 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
Dec 31 PHP
PHP Yaf框架的简单安装使用教程(推荐)
Jun 08 PHP
Yii Framework框架开发微信公众平台示例
Apr 26 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中获取时间的下一周下个月的方法
2014/03/18 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
php根据日期或时间戳获取星座信息和生肖等信息
2015/10/20 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
PHP实现的构造sql语句类实例
2016/02/03 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
基于laravel where的高级使用方法
2019/10/10 PHP
namespace.js Javascript的命名空间库
2011/10/11 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
2014/12/28 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
基于JS实现仿京东搜索栏随滑动透明度渐变效果
2017/07/10 Javascript
layui table 参数设置方法
2018/08/14 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
Python中的迭代器漫谈
2015/02/03 Python
在Python的Django框架中simple-todo工具的简单使用
2015/05/30 Python
浅析Python基础-流程控制
2016/03/18 Python
Python实现的排列组合计算操作示例
2017/10/13 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
python判断字符串或者集合是否为空的实例
2019/01/23 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
python中栈的原理及实现方法示例
2019/11/27 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
pandas按照列的值排序(某一列或者多列)
2020/12/13 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
基层工作经历证明
2014/01/13 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
人力资源管理毕业求职信
2014/08/05 职场文书
2015年新农合工作总结
2015/03/30 职场文书
台风停课通知
2015/04/24 职场文书
导游词之西递宏村
2019/12/10 职场文书
redis三种高可用方式部署的实现
2021/05/11 Redis
解析目标检测之IoU
2021/06/26 Python