盗链我不怕

  一些不良网站为了不增加成本而扩充自己站点内容,经常盗用其他网站的链接。一方面损害了原网站的合法利益,另一方面又加重了服务器的负担。其实通过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(下载实际地址)。wwW.iTcOmPUTEr.CoM.cn
  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下测试通过。