破解图片防盗链的代码(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 VS ASP
Oct 09 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
Jan 14 PHP
PHP文件大小格式化函数合集
Mar 10 PHP
php防止伪造的数据从URL提交方法
Jun 27 PHP
PHP创建word文档的方法(平台无关)
Mar 29 PHP
PHP strip_tags保留多个HTML标签的方法
May 22 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
Oct 13 PHP
PHP删除数组中指定下标的元素方法
Feb 03 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 PHP
php求斐波那契数的两种实现方式【递归与递推】
Sep 09 PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 PHP
PHP 实现 WebSocket 协议原理与应用详解
Apr 22 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性能优化工具篇Benchmark类调试执行时间
2011/12/06 PHP
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
php微信开发之图片回复功能
2018/06/14 PHP
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
Javascript实现时间倒计时功能
2018/11/17 Javascript
Python使用chardet判断字符编码
2015/05/09 Python
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
Python 编码规范(Google Python Style Guide)
2018/05/05 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
python利用tkinter实现屏保
2019/07/30 Python
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
django中瀑布流写法实例代码
2019/10/14 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
python 5个实用的技巧
2020/09/27 Python
Python如何批量生成和调用变量
2020/11/21 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
西班牙伏林航空公司:Vueling
2016/08/05 全球购物
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
《燕子专列》教学反思
2014/02/21 职场文书
2014年清明节网上祭英烈寄语
2014/04/09 职场文书
机械专业求职信范文
2014/07/15 职场文书
怎样写离婚协议书
2015/01/26 职场文书
微信小程序实现聊天室功能
2021/06/14 Javascript
SSM VUE Axios详解
2021/10/05 Vue.js
golang生成并解析JSON
2022/04/14 Golang
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL