一些不良网站为了不增加成本而扩充自己站点内容,经常盗用其他网站的链接。一方面损害了原网站的合法利益,另一方面又加重了服务器的负担。其实通过ASP技术,这个伤脑筋的问题会很容易得到解决。
1.实现原理
将显示下载链接的ASP文件加一个Session变量EnableDown(用户可自定义),只有当用户打开下载网页时才将它设为“enabled”,然后在下载链接对应的ASP文件里检验EnableDown的值,若为“enabled”则允许下载,否则,给出错误提示。
2.操作步骤
设置显示下载链接的网页为“view.asp”,在此文件顶部加入以下代码:
<%
Session("EnableDown")="enabled"
%>
设对应的下载链接为:
<a href="down.asp?id=1">本地下载</a>
在down.asp中检验代码为:
<%
dim conn,rs,sql,Connstr,DBPath '定义变量
set conn=Server.CreateObject("ADODB.Connection") '创建链接对象
DBPath = Server.MapPath("software.mdb") '软件下载链接Access表,表名software,设有两字段id(自动增量)和downsrc(下载实际地址)。TW.WINgWIT.CoM
Connstr="DRIVER={Microsoft Access Driver (*.mdb)};DBQ="& DBPath '连接字符串
conn.open Connstr '打开链接
set rs=Server.CreateObject("ADODB.RecordSet") '创建记录集
sql="select * from software where id=" & Request("id")
rs.open sql,conn,3,2 '查询
if Session("EnableDown")="enabled" then
response.redirect rs("downsrc") '转向正确下载地址
else
response.write "您下载的链接不是来自本网,请到www.***.com网站下载"
response.write "<meta http-equiv='refresh' content='2;url=http://www.***.com'>"
'设正确软件下载网站为www.***.com
end if
rs.close '关闭记录集
conn.close '关闭连接
set rs=nothing '释放资源
set conn=nothing
%>
小结
此方法使用了Session变量,当从别的网站下载此链接时,Session("EnableDown")为空,会自动转到下载首页,不会下载对应的软件,这在一定程度上可以防止盗用链接。
以上代码在Win2000+IIS5和Win2003+IIS6下测试通过。