【问题标题】:Implementing application security - App Level & DB level (ASP .NET & SQL Server 08)实施应用程序安全性 - 应用程序级别和数据库级别(ASP .NET 和 SQL Server 08)
【发布时间】:2010-02-19 11:06:49
【问题描述】:

我即将部署一个 ASP .NET 应用程序(使用 LINQ-to-SQL 开发)。

我已采取以下预防措施:

  • 通过具有受限访问权限的用户访问数据库,但是,由于应用程序要访问敏感数据,我不能剥夺这个受限访问用户的权限
  • 数据库服务器未暴露于外部网络 - 隐藏在 DMZ 后面并且所有外部端口都被阻止
  • 我已经对 Web 应用程序进行了彻底的安全测试; SQL 注入、权限管理、非法数据访问(通过 post/get 数据回火)
  • 应用程序正在 SSL 上运行

问题:

1 - 我正在使用 ASP .NET 授权 API;任何避免会话劫持的建议(以防有人以某种方式知道会话密钥)。有没有办法改变身份验证 cookie 不太容易受到威胁?比如说,在每次请求后更改它? (我知道我对这个特定项目非常有意识)

2 - 数据库中的数据未加密。为了让事情变得超级安全,我正在考虑实施透明数据加密。有人可以分享他/她的经验或有关使用 SQL Server 2008 实现数据级加密以及优缺点的链接吗?

3 - 在 web.config 中存储连接字符串的建议。使用集成安全是否比使用加密数据库连接字符串更好?

【问题讨论】:

    标签: asp.net sql-server-2008 security


    【解决方案1】:
    1. 在我看来,标准的 asp.net api 足以完成这项任务。 MS P&P 团队提供了一个very good article 来保护您的表单身份验证,它应该会对您有所帮助。
    2. 我没有这样的经验,但这里有一个link with article
    3. 我不知道 :(
      另外我建议检查AntiXSS 工具,它可以显示一些潜在的 xss 漏洞。最后一点,永远不要相信用户输入

    【讨论】:

      【解决方案2】:

      集成安全是您最强大的选择。

      【讨论】:

        【解决方案3】:
        1. 我不是 ASP.Net 专家,但在我的 PHP 项目中,我加密了 cookie 并将其关联到特定的客户端 IP。这种方式会话不能迁移到不同的客户端。最终,如果你想绝对确定,不能依赖 cookie 进行身份验证,而是使用 HTTP Digest,因为浏览器会透明地重新验证领域内的每个请求。不幸的是,此选项不适用于内置的 ASP.Net 成员资格提供商,因为他们提供的 HTTP Digest 选项至少可以说是半脑筋(仅针对 AD 进行身份验证)。
        2. 您试图通过加密数据来缓解哪些特定威胁? TDE 旨在减轻意外媒体丢失的威胁(例如,有人找到了您的旧磁盘,其中包含所有数据,或者您丢失了带有数据库的笔记本电脑)。这也是大多数其他数据库加密方案(如列加密或文件级加密(位锁定器))减轻的威胁。 TDE 无法缓解其他威胁,例如对数据库的访问 意外泄露(即有人发现了您的数据库的 SQL 注入向量),因为数据库会将解密的数据提供给任何经过身份验证的用户。为了减轻此类威胁,这意味着使用用户提供的密钥对数据进行加密(即,只有用户会话可以解密数据,因为该会话知道密钥密码),但这会破坏所有这些加密的“透明”方面计划。让用户使用自己的密钥密码加密数据可以保护其他用户(其他会话)的数据,因此它更强大,但它非常很难“正确”,并且用户始终处于危险之中通过忘记/丢失密钥密码将自己锁定在自己的数据之外。
        3. 使用集成安全性并加密存储连接字符串。由于在 Web.Config 中加密字符串是微不足道的,并且在 ASP 部署和操作中得到很好的支持,所以就去做吧。加密字符串可防止非管理员帐户意外破坏 IIS/ASP 主机。管理员帐户或运行 ASP 的帐户将始终能够读取加密的连接字符串。由于最有可能的攻击媒介总是 ASP 妥协(即 SQL 注入和朋友),即使在加密时,攻击者也很可能能够读取连接字符串,因此它没有太多好处,但每一点很重要。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-02
          • 2021-09-11
          • 2011-06-05
          • 1970-01-01
          • 1970-01-01
          • 2019-09-07
          相关资源
          最近更新 更多