我正在建立一个内部网站,其主要功能是提供软件下载。我想要防范的一件事是人们找到源路径并绕过站点(站点记录下载以进行审计。)
有没有办法隐藏二进制文件的来源? (我正在使用ASP.NET)
答案 0 :(得分:10)
执行此操作的最佳方法是将文件放在Web无法访问的目录中,然后动态加载文件。
This article可能会有所帮助。
答案 1 :(得分:2)
如果你真的想这样做那么你可以做类似
的事情答案 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流上编写二进制文件只是使用文件作为输入源而不是数据库。