【问题标题】:Encrypt Datatable server side response with Coldfusion使用 Coldfusion 加密 Datatable 服务器端响应
【发布时间】:2018-09-30 03:36:33
【问题描述】:

谁能告诉我如何使用 Coldfusion 加密 XHR 响应?我在 CFC 中使用 Datatable、BootstrapTable 和服务器端函数创建了一些表。问题是我返回的 JSON 是未加密的,因此任何人都可以看到列名和其他敏感信息。因为我没有很多Coldfusion 和 JS 的经验我找不到一个好的实现。加密函数比散列函数更好吗?对于登录部分,我使用 salt SHA-512 系统创建了一个哈希系统。但是我找不到在 CFC 中加密 JSON 并在前端使用 JS 或 CF 对其进行解密的方法。我使用 Coldfusion 9 企业版。任何建议都是有帮助的。

【问题讨论】:

  • 你不使用https 吗?
  • @JamesAMohler 是的,我使用 https..但是 XHR 响应可以看作是 json 响应,因此任何用户都可以看到该响应。
  • 由于你必须在前端用JS解密并使用这些值来渲染东西,所以任何人都可以看到你解密后的列名。

标签: javascript encryption hash coldfusion


【解决方案1】:

您想加密要在 HTML 中显示的数据吗?就@AlexBaban 而言,这没什么好担心的。如果您想“隐藏”实际的数据库列名,只需使用别名选择它们:select tableID as totally_not_my_pk_column

您应该只重新调整与已登录用户的角色或权限相关的数据。不应返回不允许他们查看的“敏感信息”。

更新:

例如,如果我启用了 2 列的排序,并且当我尝试对其中一个列进行排序时设置了不同的名称,因为再次完成查询以显示新的数据集,它需要列的名称,否则它会坏的

您如何处理数据提交?如果您提交给带有参数的函数,您可以进行数据类型验证、数据需求验证并抽象出网格控件和数据库之间的通信。如果您的函数参数是sort_column,则传递网格的排序控制值并处理将“别名”映射到查询中列的真实名称。

【讨论】:

  • 是的,您是对的,但是数据表和其他 JS 驱动的插件需要数据库中列的实际名称,以便您可以搜索这些列。例如,如果我启用了 2 列的排序,并且当我尝试对其中一个列进行排序时设置了不同的名称,因为再次完成查询以显示新的数据集,它需要列的名称,否则它将中断。同样在 JS 代码中我有很多规则,所以我可以显示一些数据,我更愿意隐藏这些规则。我知道有一些方法,例如 cryptojs 或编码代码。但我更喜欢一些建议
  • 如果列名被发送回前端 Javascript,那么加密它们对你没有任何好处。无论如何,使用该数据的任何人都可以看到所有内容。
  • 如果它是查看/只读数据,请考虑使用 SQL 视图并针对它构建查询。然后,您可以为所有列设置别名,并能够对别名进行搜索/排序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-13
相关资源
最近更新 更多