个人资料使用bigint ID'

时间:2015-10-12 19:42:22

标签: sql asp.net sql-server sql-injection

我有大量的图像,这些图像当前是GUID的ID(这是SQL Server中FILESTREAM表的要求)。

但是,这些索引很糟糕。我正在使用bigint来识别他们,但我觉得这会使我的数据库容易受到个人资料的攻击。

这里最好的做法是什么?我可以以某种方式缓解个人资料收集问题吗?

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

来下载/存储所有图像

1 个答案:

答案 0 :(得分:2)

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

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

作为另一种选择,您可以使用临时下载URL。可以在Generating Temporary Download URLs

找到实现相同内容的文章

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

这些方法的实施主要取决于您如何提供对资源的访问权。