Jquery 如何在ASP.NET MVC中混淆URL以防止图像下载?
Jquery 如何在ASP.NET MVC中混淆URL以防止图像下载?,jquery,asp.net-mvc,image,download,Jquery,Asp.net Mvc,Image,Download,到目前为止,我有一个jQuery解决方案来防止右键单击图像和任何可能出现的允许文件下载的“上下文菜单”: 不过,用户仍然可以右键单击页面的任何其他部分,查看源代码,然后像往常一样通过img src访问该文件。 我不想禁用对整个文档的右键单击,在我的谷歌搜索中,这些似乎是可能的: 将图像放入App\u Data文件夹?(…当 尝试访问类似于App\u Data/Images/foobar.jpg的内容 将类似的内容添加到Web.config?(…什么也不做): <loca
到目前为止,我有一个jQuery解决方案来防止右键单击图像和任何可能出现的允许文件下载的“上下文菜单”:
不过,用户仍然可以右键单击页面的任何其他部分,查看源代码,然后像往常一样通过
img src
访问该文件。
我不想禁用对整个文档的右键单击,在我的谷歌搜索中,这些似乎是可能的:
- 将图像放入
文件夹?(…当App\u Data
尝试访问类似于App\u Data/Images/foobar.jpg的内容
- 将类似的内容添加到
?(…什么也不做):Web.config
<location path="Content/Images">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
那么,是否有可能以某种方式混淆显示在源代码中的URL?
简短的答案并不容易,如果您以HTML文档的形式将其发送到浏览器,则该文件必须是可访问的,并且用户将能够检索到它。如果图像非常重要,您可以使用flash gallery或java小程序,但在谈到大规模访问时,两者都有各自的问题。Flash不能在手机上运行,java小程序被视为安全隐患 现在,如果你想发疯,你可以创建一种机制,动态创建URL并只提供一次服务,但这需要你让每个IMG URL调用数据库来存储,然后通过路由创建你自己的文件发送者。抱歉,这可能不清楚,我正在沙发上的电话中键入此内容:) 这种方法不是完全可靠的,因为浏览器会缓存所有内容,所以如果有人想要它,他们会得到它。如果你只是想让它变得更难,这样普通人就不会这样做了,那么这是可以做到的
最后一点要考虑的是,任何这样的行为都可能对SEO不利。你不希望谷歌在他们爬行的每一个图像上都能获得404s。 < P>你有没有考虑过使用通用处理器来完成这项工作?这样,您就不需要将图像存储在用户可以访问的地方。 下面是我在asp.net c#中使用的一些示例:
我知道这条线索已经过时了,但我希望这能有所帮助。感谢@DrewGoldsberry的洞察——这是一个很好的观点,说明这样的行为可能对SEO有害。出于这个原因,我认为我应该让这些图片可以公开访问,并更多地关注版权问题。我必须研究一下你描述的这些方法!
<location path="Content/Images">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>