寻找隐藏可下载文件源的方法

时间:2009-02-12 22:31:10

标签: asp.net

我正在建立一个内部网站,其主要功能是提供软件下载。我想要防范的一件事是人们找到源路径并绕过站点(站点记录下载以进行审计。)

有没有办法隐藏二进制文件的来源? (我正在使用ASP.NET)

4 个答案:

答案 0 :(得分:10)

执行此操作的最佳方法是将文件放在Web无法访问的目录中,然后动态加载文件。

This article可能会有所帮助。

答案 1 :(得分:2)

如果你真的想这样做那么你可以做类似

的事情
  1. 生成类似guid的随机目录名称
  2. 将任何文件复制到其中
  3. 提供链接
  4. 几分钟后删除它。

答案 2 :(得分:2)

您可以创建一个处理所有文件请求的HttpHandler,并根据某种唯一ID返回文件。因此,如果有人请求/files.ashx?id=24,他们会获取该文件,但不知道它在服务器上的实际位置。

此外,你可以使用url重写,因此它向用户看,就像他们正在访问一个物理文件路径:/downloads / dog.img,但它实际上被传递给处理程序:files.ashx?id = dog .IMG。这样,用户甚至不会意识到后台正在使用处理程序。

答案 3 :(得分:0)

让您的ASP页面读取文件并将其写入页面,提供二进制数据。链接到该页面进行下载。这样他们就不会知道磁盘上文件的位置。

像这样:http://www.dotnetcurry.com/ShowArticle.aspx?ID=105&AspxAutoDetectCookieSupport=1但是在你的ASP中通过HTTP流。

此示例显示在HTTP流上编写二进制文件只是使用文件作为输入源而不是数据库。

http://aspnet.4guysfromrolla.com/articles/120606-1.aspx