如果我不对每个列名称进行别名,则使用fech assoc将json编码的mysql数据集传递给javascript可以公开表列名称。所以问题是,将列名称暴露为json对象属性是否存在安全风险?
我一直在使用PDO准备好的语句。
答案 0 :(得分:4)
单独公开列标识符不应该是高安全风险。安全问题是如果您允许SQL注入攻击,即使在您的应用程序中只有一个案例,有人可以使用有关列名的知识来加速发现如何编写非法查询。
但他们无论如何都可以找到列,因为如果他们可以通过SQL注入运行任意SQL,他们可以查询您的INFORMATION_SCHEMA并找出他们需要的任何内容。
如果您确信您的查询执行安全,那么您应该没问题。
答案 1 :(得分:2)
我认为这不仅仅是安全问题,而是安全问题。就其本身而言,它没有任何坏处。但是,如果存在真正的安全风险,例如注入攻击,可以帮助攻击者。