首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP表单名安全漏洞?

PHP表单名安全漏洞?
EN

Stack Overflow用户
提问于 2014-01-28 12:18:46
回答 2查看 311关注 0票数 1

我是一个初级PHP开发人员,目前正在用一个小团队从事一个项目。这是我第一次在一个项目的团队中工作,所以我学到了很多,培养了团队的工作技能。

有一件特别的事情我注意到,我的同事开发,我相信可能是一个很大的安全风险。在创建表单时,它们将在数据库中为输入名称指定列名。这意味着,无论在何处发布数据,它们都可以对遍历POST数组的每个循环使用巧妙的方法。当然,它很漂亮也很容易,但是我想让用户看到列的名称吗?

我不确定它是否会带来安全风险(我首先想到的是SQL注入),但是如果这样做,我们可以做些什么呢?

我想您可以散列输入的名称吗?尽管如此,这并不是百分之百的安全。如果表单页面中的名称是‘apple64 64’、‘banana99 99’、‘小鸡’之类的东西,然后在PHP文件中将它们转换成相应的列名呢?

我问题的重点是找出这种(可能的)安全漏洞的一般做法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-28 18:59:49

这种普遍做法称为“白名单”。

关于这个漏洞,您是完全正确的。对于初级开发人员来说,你有很好的眼力。事实上,大多数自称“专业人士”的人从来不为这些问题烦恼。

因此,为了防止普通的SQL注入,也为了防止对表字段的随机访问(其中一些字段可能不允许用户访问),您必须根据预先编写的白名单验证您的post数据。

在这里,您可以看到my approach for either classic mysql or PDO作为一个示例。

票数 1
EN

Stack Overflow用户

发布于 2014-01-28 12:37:16

当你开发的时候,你必须给用户最少的信息。标题/ DB名称/列名等。

如果表单处理不安全,则存在sql注入的风险。要控制sql请求,您必须准备这些请求,并检查变量是否具有特殊的字符。

关于pdo http://php.net/manual/en/pdo.prepare.php的文档

关于sql注入的一个很好的“如何”:http://www.unixwiz.net/techtips/sql-injection.html

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21405515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档