我有大量的图像,这些图像当前是GUID的ID(这是SQL Server中FILESTREAM
表的要求)。
但是,这些索引很糟糕。我正在使用bigint
来识别他们,但我觉得这会使我的数据库容易受到个人资料的攻击。
这里最好的做法是什么?我可以以某种方式缓解个人资料收集问题吗?
* by" profile-harvesting"我的意思是某人能够通过预测下一个ID
来下载/存储所有图像答案 0 :(得分:2)
很大程度上取决于您允许如何向用户访问您的内容。如果您基于权限授予用户访问权限,则可以通过数据库实体来限制它们,以指定哪些用户可以使用哪些资源。
对于一般资源汲取,这里有一篇关于这个主题的好文章how-to-prevent-the-resource-leech-from-a-website。可以修改本文中的代码以保护图像,即以.jpg,.png等结尾的资源。
作为另一种选择,您可以使用临时下载URL。可以在Generating Temporary Download URLs
找到实现相同内容的文章如果您通过HttpHandler提供资源,则可以使用加密的临时网址参数,该参数在特定时间段后过期。
这些方法的实施主要取决于您如何提供对资源的访问权。