表单字段和数据库表字段的名称相同吗?

Posted

技术标签:

【中文标题】表单字段和数据库表字段的名称相同吗?【英文标题】:Same name for form fields & database table fields? 【发布时间】:2012-07-27 03:11:29 【问题描述】:

html 表单名称与表格字段名称同名是否被认为是不好的做法?我正在构建一些动态 sql 插入查询,目前我正在使用一些正则表达式将名称更改为相关的数据库字段,因为我觉得否则可能不安全,您有什么意见?

【问题讨论】:

有点难以避免在表格和表单中都有“名字”。名称是无关紧要的,只要您不通过表单来回传递这些字段名称,从而使自己面临各种 sql 注入攻击。 【参考方案1】:

我写了一个函数来为我做INSERT 查询,这取决于这个事实。它将$_POST 变量名和INSERTs 放入相应的列中。

正如对 OP 的评论中所说,这并不重要,并且在大多数情况下,如果您使用 first_name, firstname,first.,可以节省您回忆的时间

另外,请记住,您的用户将永远不会看到数据库列名,他们只会在查看源代码时看到表单名称。因此,不用担心太多!

祝你好运!

【讨论】:

【参考方案2】:

我认为这可以帮助您减少需要做的编码。尽管它看起来像一个漏洞,但最重要的是检查来自用户的值是否存在恶意数据。我不认为这可能是有害的,因为知道您正在使用哪些数据库字段并没有给黑客带来太多帮助。他们仍然需要侵入数据库服务器才能访问您的数据。

【讨论】:

细说一下,大家都知道一张表会有id字段,而一个存储用户会有password,salt,name字段。所以不用担心【参考方案3】:

名称应该足以让您阅读,但“不可预测”(缺少更好的术语)足以让攻击者无法猜出隐私部分。

表单名称并不重要,但密码字段的好名称应该是 the_users_passwordpassphrase_for_account

【讨论】:

为什么the_users_passwordpassword 更安全? @David:因为攻击者很难猜到。安全性不大,好像走到这一步,他就能拿到表的schema了,但还是…… 希望他没有在密码列中以明文形式存储密码!不过,我明白你在说什么。

以上是关于表单字段和数据库表字段的名称相同吗?的主要内容,如果未能解决你的问题,请参考以下文章

需要表单上的按钮以将表的字段名称插入 Access 中的另一个表

mysql php从2个表中选择字段,具有相同的字段名称[重复]

关于SQL Server2005数据表字段关联问题

ArcGIS中的字段名称可以修改吗?

在网页中命名表单域

sql server数据库表中各字段名需要大写吗