【发布时间】:2015-02-04 14:08:54
【问题描述】:
我正在开发一个 PHP、MySQL 应用程序。我遵循这个原则,我在 MySQL 表中使用相同的列名作为 HTML 变量名。
我发现它确实是一种很好的设计技巧:
- 我遍历 $_POST 变量名,并更新表。由于列名和变量名相同,更新数据库时出错的可能性较小。
遵循这样的设计技巧是一种好习惯吗?我不是专家,这会暴露我们的数据库结构吗?
我也在考虑对上述设计进行变体,在创建数据库列时添加一些用于 HTML 变量的字符串。
【问题讨论】:
-
好吧,它会将您的结构暴露给知道您正在做的事情的人!但大概您已经采用了其他最佳做法来保护您的数据。
-
我做同样的事情,我不认为显示你的数据库列名有问题,但是在编写查询时应该格外小心,确保它们被正确清理,不幸的是参数化查询不能用于过滤列名
-
只要确保将列名列入白名单
-
攻击者可以很容易地将 SQL 注入作为列名发布,因此请确保您对列名进行转义,正如@Ghost 所说.. 制作白名单
标签: php mysql database performance