我有一个正在开发的网店,有些产品需要是可下载的文件(电子书,图像,mp3等)。我将文件存储在项目的子文件夹中,只是在我的数据库中引用它们。
我不希望任何有直接文件链接的人能够下载它们,我想自己控制它。下载应该只能通过我的商店 - 也就是我的客户区域,用户可以看到他们购买的所有电子产品。
除了我的代码外,如何保护我的磁盘上的文件不被下载?
答案 0 :(得分:3)
有几种方法可以阻止IIS静态文件处理程序将文件提供给客户端。
1)在配置中使用部分。您可以使用hiddenSegments元素指定不会提供的子段路径。查看%windir%\ system32 \ inetsrv \ config \ applicationhost.config,了解如何定义此部分并用于防止访问bin文件夹和其他目录。
<configuration>
<system.webServer>
<security>
<requestFiltering>
<hiddenSegments>
<add segment="subdirectoryName" />
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
</configuration>
2)如果你正在寻找一个更简单的“穷人”&#34;阻止静态文件处理程序提供文件的方法,你可以使文件&#34;隐藏&#34; (从文件系统属性的角度来看)。静态文件处理程序不会提供隐藏文件。
答案 1 :(得分:1)
答案很简单:不要将这些文件放在您的网站中,将它们放在网站的根目录之外。
您可以将IIS配置为不通过请求过滤为此文件夹提供请求:
我假设这些路径不是您想要服务的路径吗?