设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 71|回复: 8
打印 上一主题 下一主题

asp 访问有权限的文件夹可以吗?

[复制链接]
跳转到指定楼层
1#
发表于 2010-1-10 05:37:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我不想让别人盗链接下载自己网站上的文件.我在放下载的文件的文件夹上设置了权限,想问可以用ASP访问吗
2#
发表于 2010-1-10 05:37:20 | 只看该作者
假如知道了你的文件名和存放路径是不是可以绕过下载页直接下载了
回复 支持 反对

使用道具 举报

3#
发表于 2010-1-10 05:37:24 | 只看该作者
怎么没人回呀
回复 支持 反对

使用道具 举报

4#
发表于 2010-1-10 05:37:28 | 只看该作者
不公开真实路径...用了迅雷之类的软件不就出来了吗?
回复 支持 反对

使用道具 举报

5#
发表于 2010-1-10 05:37:31 | 只看该作者
ASP好像不能访问设有读写权限的文件夹
回复 支持 反对

使用道具 举报

6#
发表于 2010-1-10 05:37:35 | 只看该作者
可以不公开文件真实路径,用asp的redirect。
当然了,这样还不够。可以用asp里读取文件内容再BinaryWrite出来,但比较费资源。
回复 支持 反对

使用道具 举报

7#
发表于 2010-1-10 05:37:39 | 只看该作者
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="mdb.asp"-->
<!--#include file="inc/WFile.asp"-->
<%
fileid=request.querystring("id")
'防盗链
if session(fileid)<>"canload" then 'session是通过点击下载连接产生的,点击才会产生这个session
response.write "请勿盗链本站内容!!!!<br>"&vbcrlf
response.write "请从<a href=""http://www.zhi2xun.cn/files/"">列表首页</a>下载本文件;<br>"&vbcrlf
response.write "若找不到文件,请使用搜索功能;<br>"&vbcrlf
response.write "非常感谢您的访问。"&vbcrlf
response.end
end if

Dim Stream
Dim Contents
Dim FileName
Dim FileExt
Const adTypeBinary = 1
'下面代码从数据库提取文件信息
sql="select Title,FileUrl from Files WHERE id="&fileid
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
FileName=rs(1)
fileexc=mid(FileName,instrrev(FileName,"."))
name=rs(0)&fileexc
tit=rs("Title")
rs.close
set rs=nothing
'提取文件信息结束
' 下载这个文件
Response.Clear
Response.ContentType = "application/octet-stream"
Response.AddHeader "content-disposition", "attachment; filename="&name
Set Stream = server.CreateObject("ADODB.Stream")
Stream.Type = adTypeBinary
Stream.Open
Stream.LoadFromFile Server.MapPath(FileName)
While Not Stream.EOS
Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
'下面仅仅是统计代码
m_msg="→ 来自<font color=red>"&request.servervariables("REMOTE_ADDR")&"</font>的访客在<font color=red>"&now()&"</font>下载了<font color=red>"&tit&"</font><br />"
call writeF(server.mappath("logs.asp"),m_msg) '下载记录写入文件
if arii<>"yes" then
response.cookies("user")(fileid)="yes"
response.Cookies("user").Expires=DateAdd("d", 1, now())
sql="update Files Set Download=Download+1 where id="&fileid
conn.execute sql
end if
'统计结束
conn.close
set conn=nothing
Response.Flush
Response.End
%>
回复 支持 反对

使用道具 举报

8#
发表于 2010-1-10 05:37:44 | 只看该作者
嗯,楼上的这个思路非常好,但是注意运行起来是非常占资源的,所以大型网站嘛……最好是用类似isapi的技术防盗链,还有一段时间改文件名
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 09:33 , Processed in 0.094508 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表