0

我们发现内部 CDN 解决方案存在问题。

Auth 用户将照片或文档添加到他们的项目中。我们将文件上传到与网站应用程序不同的服务器上的本地驱动程序。

Example: mysite.com [ d:\websites\mysite.com\]  running web-app
Example: cdn.mysite.com [ e:\cdn\mysite.com\assests\]  storage area

如果 Auth 用户上传了一张图片……然后右键单击它,暴露的 URL 是:

http://cdn.mysite.com/assests/30b3bddc-fe1b-4fef-92c0-576bb6e5b487
/p/347e4ec6-3e36-4ac3-932a-a686d3cffd51/t/347e4ec6-3e36-4ac3-932a-a686d3cffd
51.jpg

我们为项目文件夹/用户文件夹/ImageName.jpg 使用 GUID

但是,如果您复制/粘贴此 URL 并将其发送给朋友(非身份验证用户),您可以访问图像/文件/等...

如果用户是 Auth,我们如何保护 CDN 仅提供文件?

Windows 2008 服务器 IIS 7 ASP.NET 4 C# Web 应用程序

4

2 回答 2

2

创建一个自定义 HTTP 模块来处理对 cdn 站点的所有传入请求。在处理程序中,您可以检查它们是否经过身份验证

http://msdn.microsoft.com/en-us/library/ms227673.aspx

于 2012-07-18T22:48:20.107 回答
0

您可以强制它通过通用 http 处理程序,而不是直接引用文件。处理程序应检查请求的登录状态,如果未登录,则不提供任何内容。

于 2012-07-18T23:40:12.477 回答