【问题标题】:Viewing encrypted database data查看加密的数据库数据
【发布时间】:2011-07-12 13:45:41
【问题描述】:

我正在使用 SQL Server 2008 来存储一些加密信息。大约有 5 个数据库表具有包含加密数据的字段。 加密是在服务器端使用 Java 完成的。我的问题是我们还需要查看/更新这些加密信息。为了查看/更新数据库中的加密信息,我正在创建一个 Web 应用程序,允许用户查看/更新数据库中的加密信息。

例如,假设用户需要将新数据插入到包含加密字段的数据库中:

  1. 用户将能够在 Web 应用程序中输入 INSERT SQL 查询 并让 App Server 解析查询。

  2. 如果我找到需要加密的字段,那么我必须提取 明文值,使用 Java 对其进行加密,然后修改 使用加密值查询。

  3. 对数据库执行修改后的 INSERT 查询。

现在解析 SQL 查询并修改它们会很痛苦。我只是想知道是否有更简单的方法可以做到这一点。有没有人这样做过?有什么工具可以促进这一点吗?

问题是数据库将安装在客户站点上,因此我们必须加密数据库字段以保护知识产权。客户端对其数据库具有完全访问权限,因此使用内置加密的 SQL Server 不是一个好主意。

任何建议表示赞赏。

【问题讨论】:

  • 谁拥有数据库中的数据?
  • 客户端只拥有应用程序生成的数据。它是一个人工智能应用程序,其配置存储在数据库中。如果客户或任何人有权访问其配置,那么他们可以进行逆向工程。
  • 我认为如果没有更多信息,很难判断是否有更简单的解决方案。例如,为什么您的客户必须输入 SQL 查询? (这本身就写满了“这里是龙”...)您所呈现的似乎是您不喜欢的 实现,而不是您需要解决的实际问题解决,它可能有其他实现。也许您可以详细说明一下您实际上需要做什么。

标签: java sql-server sql-server-2008 encryption


【解决方案1】:

我建议不要使用来自网络应用程序的直接 sql 语句输入,这就是原因

  1. 没有数据验证(用户列上没有数据类型帮助)
  2. 输入 sql 拼写错误的用户错误(只能在 jdbc 执行时验证)
  3. 更不用说,这不是最安全的做法

如果您采用表单路径,则需要为表格添加/编辑表单,其中所有列都列为表单输入。您可以解决以上所有问题,也可以在每列旁边添加复选框,使列的加密更具可配置性。

如果你还有直接使用sql的原因,我想你可以看看下面这个帖子,如果我是你我会解析查询我自己

SQL parser library for Java

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    相关资源
    最近更新 更多