保护图片,怎么样?

时间:2009-03-18 10:17:45

标签: asp.net security protection image

我正在使用asp.net,我的用户需要将私有图片上传到我的服务器。这些图片无论如何都无法传播,所以我需要以某种方式保护它们。什么是保护他们免受公共使用的最简单方法,只有授权用户才能联系到他们?

谢谢!

3 个答案:

答案 0 :(得分:8)

  • 您希望公众能够查看图片,但是下载它们会更难吗?

    如果是这样,您可以查看the way Flickr does it,以了解任何选择不允许下载的人。它们在真实图像的顶部放置一个透明的GIF图像,以防止通过右键单击来下载图像。

    下载它们仍然非常容易,因为根据经验,公众可以查看任何内容,它们可以保存到硬盘上。因此,我认为阻止公开可见材料下载的尝试相当无效;而且大多只是违反了可用性。也许你应该考虑合法途径而不是混淆;明确说明您的版权声明和任何您想要的许可证,并准备好追捕窃取他们的任何人。

  • 您是否允许人们查看和下载您网站上的图片,但不是要将其与其他网站进行热链接?

    如果是这样,关键是检测发送的引用(sic)标头,如果引用者不匹配则拒绝图像。请注意,如果引用者为空白,则默认情况下您必须信任它,因为即使在您自己的页面上查看,很多人的浏览器也不会发送引用者。

    这通常在服务器指令中完成;如果您使用的是Apache,那么就可以in an .htaccess file using mod_rewrite directives。但是,如果您使用的是IIS,那么我不太清楚these instructions may or may not help

  • 或者,您想阻止公众查看它们吗?如果是这样,您只需要在您使用的任何服务器上使用访问控制 - 这里是access control instructions for IIS

答案 1 :(得分:4)

使用asp.net处理程序而不是直接提供图像。这样,您可以在提供图像时对授权进行精细控制。

此外,将图像保留在公共文件夹之外,因此用户无法下载它们,即将它们存储在网站文件夹之外或数据库中。

请查看此处以获取有关处理程序的更多信息:http://www.wrox.com/WileyCDA/Section/id-291916.html。两个样本都提供图像,但它们专注于非常特定的场景。正如您在其中所看到的,您可以完全控制在那里实现的逻辑,因此您可以检查请求图像的用户是否有权下载指定的图像。

答案 2 :(得分:1)

您可能希望查看此问题以获取一些想法: secure images against static requests