mysql - 难以猜测的 SQL 数据库表名和列名是否有助于防止 SQL 注入(inject)?

标签 mysql sql sql-injection

我刚遇到一位开发人员,他在他的 MYSQL 数据库中的每个表和列名前都加上下划线(例如 _users、_name、_active)。当我质疑这种做法时,他说这有助于防止 SQL 注入(inject)攻击——我以前从未遇到过这种做法/建议。它如何帮助防止 SQL 注入(inject)攻击?

最佳答案

没有。

他的想法是“如果攻击者不知道我的表的名称,那么攻击者就无法搞砸它们。”但是,您仍然容易受到 SQL 注入(inject)的攻击,并且攻击者仍然可以导致任意系统调用,可能是对众所周知的系统表。如果他添加了一些 SQL 代码,导致对系统表进行很长时间的查询,从而使您的服务器陷入瘫痪,该怎么办?

通过默默无闻的安全性根本不是安全性。

关于mysql - 难以猜测的 SQL 数据库表名和列名是否有助于防止 SQL 注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13458522/

相关文章:

带有最新记录的 SQL 子查询

mysql - CREATE TEMP TABLE AS 与 INSERT INTO SELECT 之间的性能

php - 仅提取尚未插入链接表的值

php - 使用 PDO quote() 时是否可能进行 SQL 注入(inject)?

php - 使用 safemysql 类来防止 SQL 注入(inject)是个好主意吗?

java - SQL查询扁平化一对多关系表的数据

php - Mysql blob 字段有第一行空格,因此不会播放文件

php - 如何通过带有嵌套集模型的 php <ul> <li> 标签自动创建菜单

php - 从派生表中提取列并将它们汇总到一个 MySQL SELECT 语句中

php - 如何防止 PHP 中的 SQL 注入(inject)?