【问题标题】:Is exposing column names as json object properties a security risk?将列名公开为 json 对象属性是否存在安全风险?
【发布时间】:2014-11-02 04:15:44
【问题描述】:

如果我不对每个列名起别名,则使用 fech assoc 将 json 编码的 mysql 数据集传递给 javascript 可以暴露表列名。那么问题来了,将列名公开为 json 对象属性是否存在安全风险?

我一直在使用 PDO 准备好的语句。

【问题讨论】:

  • 嗯... 我倾向于选择“是”,这可能是一个因素。他们知道的越少越好。您可以使用别名。等待其他答案。
  • SO 公开列名 (data.stackexchange.com/stackoverflow/query/new) 没有问题。如果您有安全的输入和虚拟主机,我认为没有必要高度掩盖您的列名。
  • @Mr.Smith:或者这就是他们想要你的想法,bwa hah hah ...
  • 一切皆有可能:)。

标签: php mysql json pdo


【解决方案1】:

单独公开列标识符不应该是一个高安全风险。安全问题是,如果您允许 SQL 注入攻击,即使您的应用程序中只有一种情况,有人可以使用有关列名的知识来加速发现如何编写非法查询。

但他们无论如何都可以找到列,因为如果他们可以通过 SQL 注入运行任意 SQL,他们就可以查询您的 INFORMATION_SCHEMA 并找出他们需要的任何东西。

如果您确信您的查询执行是安全的,那么您应该没问题。

【讨论】:

    【解决方案2】:

    我会说这是一个安全问题,而不是安全风险。它本身并没有什么坏处。但是如果存在真正的安全风险,例如注入攻击,如果可以帮助攻击者。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-30
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多