我刚遇到一位开发人员,他在他的 MYSQL 数据库中的每个表和列名前都加上下划线(例如 _users、_name、_active)。当我质疑这种做法时,他说这有助于防止 SQL 注入(inject)攻击——我以前从未遇到过这种做法/建议。它如何帮助防止 SQL 注入(inject)攻击?
最佳答案
没有。
他的想法是“如果攻击者不知道我的表的名称,那么攻击者就无法搞砸它们。”但是,您仍然容易受到 SQL 注入(inject)的攻击,并且攻击者仍然可以导致任意系统调用,可能是对众所周知的系统表。如果他添加了一些 SQL 代码,导致对系统表进行很长时间的查询,从而使您的服务器陷入瘫痪,该怎么办?
通过默默无闻的安全性根本不是安全性。
关于mysql - 难以猜测的 SQL 数据库表名和列名是否有助于防止 SQL 注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13458522/