代码之家  ›  专栏  ›  技术社区  ›  chanchal1987

如何向web服务器的域管理员隐藏数据库中存储的数据?

  •  1
  • chanchal1987  · 技术社区  · 16 年前

    我想使用ASP.NET创建一个安全的网站,但是当我发布它时,域管理员可以看到存储在我的数据库(SQL Server)中的所有数据。我也想对域管理员隐藏我的数据和代码。有什么程序吗?请给我一个好域名的地址,我可以使用,这将给我所有的管理权力,我的网站(域名所有者也不能访问我的数据库和文件。)谢谢你的建议。

    6 回复  |  直到 16 年前
        1
  •  1
  •   PhilPursglove    16 年前

    你考虑过使用 Virtual Private Server ? 我相信使用VPS,您应该能够完全控制谁可以访问操作系统级别的内容。

        3
  •  1
  •   annakata    16 年前

    您可以加密数据,但无法保护代码(尤其是面向web的代码),但坦率地说,这个问题没有意义—如果您与某个具有隐式信任关系的人存在信任问题,那么您需要找到其他提供者。

    如果你不信任 任何人

        4
  •  1
  •   Chris Marisic    16 年前

    如果您想要完全的安全性,您需要实现以下几点:

    您将要使用web.config加密

    Walkthrough: Encrypting Configuration Information Using Protected Configuration

    How To: Encrypt Configuration Sections in ASP.NET 2.0 Using DPAPI

    然而,这是一个相当可疑的安全性问题,因为它需要在服务器上安装一个密钥容器,对于一个邪恶的管理人员来说,复制您的密钥,然后使用它手动解密您的web.config是可以实现的。为了进一步保护您自己,您需要创建一个安全的web服务(对于消息传输、SSL和安全消息都是安全的),内容本身在SSL传输隧道中被加密,请参阅您的应用程序经常与之通信的WCF服务(安全性),以获取受保护的数据,如sql server数据库的登录用户,然后应用轮换密码,使其在截获一个密码时,如果该密码被轮换,则可能不再有效。

    在此之后,您将需要使用源代码保护,包括反编译保护和代码混淆。这将添加一个保护层,禁止直接查看应用程序的源代码以获取有关如何保护应用程序的信息(但这仅限于阻止复杂的破解程序)。

    总而言之,在托管环境中,您已经实现了几乎最高级别的代码/数据安全性,但这又回到了核心问题。如果你担心系统操作员是邪恶的,那么如果管理员足够熟练并且有足够的动机去做,那么所有这些保护措施甚至仍然可以被打败。

    如果您需要以上和背后的保护,您真的想看看托管托管或最不专用的服务器托管,这将允许您在操作系统级别应用加密,因为这可以保护您免受最有效的蛮力攻击,这涉及到只从一台机器上剥离硬盘驱动器和用空气喷粉器将ram倒置以将其冻结,然后试图从与服务器断开连接的ram中窃取加密密钥。

        5
  •  0
  •   cjk    16 年前

    拆下 BUILTIN\Administrators 组中的sysadmin角色-显然这只能由服务器管理员完成,但在适当的环境中,域管理员可能只能维护服务器而看不到数据。

    在2008年,默认情况是不包括这个。

    至于代码,您可以模糊您的dll,但是没有完整的方法可以对可以访问文件系统的人隐藏代码。

        6
  •  0
  •   vol7ron    16 年前

    您将无法隐藏源代码,但您确实有一些选项可以降低它对管理员的吸引力:

    1. 模糊 -阻止人们从语法上了解正在发生的事情。虽然他们可以遵循代码并最终找到它(如果他们愿意的话),但这需要更多的努力。毕竟,只要有足够的努力和专业知识,任何东西都可以破解。

    2. 加密 -因为网页需要由服务器解密,所以服务器需要有一个密钥来解密它。此密钥需要存储在服务器(以及管理员)有权访问的文件中。使用一些模糊处理,你可以尝试隐藏这个(再次),但任何地方有一个对称加密,超级用户有能力得到它。

    注:

    1. 任何时候对某些东西进行加密,都很可能需要解密才能使用/查看。该过程将对性能产生负面影响。