2009-02-12 63 views
4

我正在构建一个内部网站,其主要功能是提供软件下载。但有一点我想要提防的是人们寻找源代码路径并规避网站(该网站记录下载以进行审计)。寻找一种方法来隐藏可下载文件的来源

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

回答

10

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

This article可能会有所帮助。

+0

这比我的想法要好。 – 2009-02-12 22:36:14

2

如果你真的想这样做,那么你可以做这样的事情

  1. 生成随机GUID类目录名
  2. 复制任何文件到它
  3. 服务链接
  4. 几分钟后删除它。
0

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

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

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

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

2

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

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

相关问题