破解图片防盗链的代码(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 相关文章推荐
VML绘图板②脚本--VMLgraph.js、XMLtool.js
Oct 09 PHP
Cannot modify header information错误解决方法
Oct 08 PHP
Base64在线编码解码实现代码 演示与下载
Jan 08 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
May 04 PHP
php入门之连接mysql数据库的一个类
Apr 21 PHP
php中time()和mktime()方法的区别
Sep 28 PHP
简单实用的.net DataTable导出Execl
Oct 28 PHP
简单的php中文转拼音的实现代码
Feb 11 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
Jul 01 PHP
php获取客户端IP及URL的方法示例
Feb 03 PHP
php 静态属性和静态方法区别详解
Apr 09 PHP
PHP长连接实现与使用方法详解
Feb 11 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
mysql5详细安装教程
2007/01/15 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
PHP实现简单爬虫的方法
2015/07/29 PHP
php实现微信分享朋友链接功能
2019/02/18 PHP
浅析JavaScript中的类型和对象
2013/11/29 Javascript
Document.location.href和.replace的区别示例介绍
2014/03/04 Javascript
深入理解Javascript中this的作用域
2014/08/12 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
2016/01/19 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
JavaScript lodash常见用法系列小结
2016/08/24 Javascript
js模式化窗口问题![window.dialogArguments]
2016/10/30 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
详谈js对url进行编码和解码(三种方式的区别)
2017/08/16 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
Angular实现类似博客评论的递归显示及获取回复评论的数据
2017/11/06 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
JavaScript Blob对象原理及用法详解
2020/10/14 Javascript
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
Python验证码识别处理实例
2015/12/28 Python
python通过百度地图API获取某地址的经纬度详解
2018/01/28 Python
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
python2与python3爬虫中get与post对比解析
2019/09/18 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
2020/06/04 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
一套C++笔试题面试题
2012/06/06 面试题
应届大学生求职的自我评价
2013/11/17 职场文书
酒店中秋节促销方案
2014/01/30 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
施工安全承诺书
2014/05/22 职场文书