使用 bigint ID 获取个人资料图像

Profile Image Harvesting with bigint ID's

我有大量当前由 GUID 标识的图像(这是 SQL 服务器中 FILESTREAM 表的要求)。

但是,这些对于索引来说很糟糕。我正在考虑使用 bigint 来标识它们,但我觉得这会使我的数据库容易受到配置文件收集的影响。

此处的最佳做法是什么?我能否以某种方式缓解配置文件收集问题?

*by "profile-harvesting" 我的意思是某人能够通过预测下一个 ID

来 download/store 所有图像

这在很大程度上取决于您如何允许用户访问您的内容。如果您向用户授予基于权限的访问权限,那么您可以通过指定哪些资源可供哪些用户使用的数据库实体来限制他们。

对于一般的资源窃取,这里有一篇关于该主题的好文章 how-to-prevent-the-resource-leech-from-a-website。可以修改本文中的代码以保护图像,即以 .jpg、.png 等结尾的资源。

作为另一种选择,您可以使用临时下载 URL。可以在此处找到实现相同内容的文章 Generating Temporary Download URLs

如果您通过 HttpHandler 提供资源,您可以使用加密的临时 url 参数,该参数会在特定时间段后过期。

这些方法的实施主要基于您提供资源访问的方式。