【问题标题】:is a BLOB more secure than allowing write permission to a directory on a web serverBLOB 比允许对 Web 服务器上的目录的写入权限更安全
【发布时间】:2011-05-10 10:40:29
【问题描述】:

我正在构建一个允许进入数据库的系统(如果需要,可以考虑用户帐户)与图像相关联。这些将是小图像,不会有很多。

我知道使用 BLOB 的一般优点/缺点,在这种情况下似乎不会成为问题。不过,这个项目的安全性很重要。那么在我的 Windows 服务器上设置一个目录是否更安全,该目录可以存储用户上传的图像,而不是仅仅将图像作为 BLOB 粘贴在数据库中?

那么,网络用户将图像加载到服务器的潜在安全问题是否严重到足以对性能造成小的影响,还是我过于谨慎了?

该站点是在 ASP.NET 4.0 中构建的,数据库是 Sql Server 2008,我用来托管该站点的服务器可以是 Windows Server 2003 或 2008。

【问题讨论】:

  • 图片的安全注意事项与其他帐户详细信息有何不同?
  • 要允许上传图像,您需要授予 IIS 应用程序池帐户访问权限以将文件写入目录。如果您将存储为 BLOB,则仅使用已存在的数据库连接字符串。
  • 我在问,在您的应用程序和您的用户中,图像的安全要求与其他帐户详细信息的安全要求有何不同。也就是说,图像应该更安全,更不安全,还是一样安全?
  • 哦,我的意思是从系统的角度来看,如果打开存储图像的特定功能,可以从服务器的安全级别添加或删除。图像本身并不比其他任何东西更重要或更不重要。我只需要能够为每个帐户提供一个图像,并且我希望尽可能保证整个系统的安全。这是否回答你的问题?谢谢!

标签: sql-server windows-server-2008 blob security


【解决方案1】:

是的,在 sql 数据库中使用 blob 存储敏感信息非常安全。

1)彻底杜绝目录遍历问题。

2) 轻松地逐个文件地应用访问控制并将其链接到用户/组。

3)数据库已内置加密。

另外一种更安全、更快捷的方法是将文件存储在 Web 根目录之外。将文件名改为主键,并将元数据(如访问控制)存储在数据库中。当您提供文件时,asp.net 可以根据文件名查找主键并打开磁盘驱动器上的文件。

【讨论】:

    【解决方案2】:

    是的,它更安全。如果您使用的是 PHP,我可以提供一个具体示例来说明原因。可以这么说,用户可能能够利用您的代码/系统中的一个漏洞,使他们能够执行包含在看似图像中的代码。

    edit:当然,您必须防止 SQL 注入,但通常很清楚您是否正确执行了此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-15
      • 2020-12-07
      • 2014-10-17
      • 2011-05-07
      • 1970-01-01
      • 2020-10-03
      • 2012-08-01
      • 1970-01-01
      相关资源
      最近更新 更多