http的header 里面取refer  request.getHeader("Referer")可以取出你网站的连接

解决方案 »

  1.   

    有个想法:下载的地址是动态的,比如和日期相关,你原来的地址可能是这样的 csdb.com/download?id=1,下载id=1的文件。换成csdb.com/download?id=20141023-1.在id前加一个当前日期,那么这个地址只在2014-10-23有效,当然这样太明显了,容易被看出来,可以伪装一下。
      

  2.   

    加入一个随机sign的一个签名校验,这个必须由你方客户端发起的请求才认可,到服务器进行校验
      

  3.   

    如果只想要一次的话,那么你可以再服务器内部维护一个配置文件,比如:
    下载地址是http://localhost/think/downloadAction.do?sign=2134234234;
    后面sign的值存在配置文件中,如果别人拿了sign值过来你就看在不再配置文件中,如果在就让其下载,下载完成之后将这个标志删除掉即可