表单字段和数据库表字段的名称相同吗?
Posted
技术标签:
【中文标题】表单字段和数据库表字段的名称相同吗?【英文标题】:Same name for form fields & database table fields? 【发布时间】:2012-07-27 03:11:29 【问题描述】:将 html 表单名称与表格字段名称同名是否被认为是不好的做法?我正在构建一些动态 sql 插入查询,目前我正在使用一些正则表达式将名称更改为相关的数据库字段,因为我觉得否则可能不安全,您有什么意见?
【问题讨论】:
有点难以避免在表格和表单中都有“名字”。名称是无关紧要的,只要您不通过表单来回传递这些字段名称,从而使自己面临各种 sql 注入攻击。 【参考方案1】:我写了一个函数来为我做INSERT
查询,这取决于这个事实。它将$_POST
变量名和INSERT
s 放入相应的列中。
正如对 OP 的评论中所说,这并不重要,并且在大多数情况下,如果您使用 first_name,
firstname,
或 first.
,可以节省您回忆的时间
另外,请记住,您的用户将永远不会看到数据库列名,他们只会在查看源代码时看到表单名称。因此,不用担心太多!
祝你好运!
【讨论】:
【参考方案2】:我认为这可以帮助您减少需要做的编码。尽管它看起来像一个漏洞,但最重要的是检查来自用户的值是否存在恶意数据。我不认为这可能是有害的,因为知道您正在使用哪些数据库字段并没有给黑客带来太多帮助。他们仍然需要侵入数据库服务器才能访问您的数据。
【讨论】:
细说一下,大家都知道一张表会有id
字段,而一个存储用户会有password,
salt,
和name
字段。所以不用担心【参考方案3】:
名称应该足以让您阅读,但“不可预测”(缺少更好的术语)足以让攻击者无法猜出隐私部分。
表单名称并不重要,但密码字段的好名称应该是 the_users_password
或 passphrase_for_account
。
【讨论】:
为什么the_users_password
比password
更安全?
@David:因为攻击者很难猜到。安全性不大,好像走到这一步,他就能拿到表的schema了,但还是……
希望他没有在密码列中以明文形式存储密码!不过,我明白你在说什么。以上是关于表单字段和数据库表字段的名称相同吗?的主要内容,如果未能解决你的问题,请参考以下文章
需要表单上的按钮以将表的字段名称插入 Access 中的另一个表