我使用 PHP 已经有一段时间了,我开始问自己是否养成了良好的习惯。
我认为其中之一是过度使用 PHP 清理方法,例如,一个用户通过表单注册,我得到以下帖子变量:
$_POST['name']
、$_POST['email']
和 $_POST['captcha']
。现在,我通常做的显然是对要放入 MySQL 的数据进行清理,但是在比较验证码时,我也会对其进行清理。
因此我相信我误解了 PHP 清理,我很好奇,除了使用它在 MySQL 中放置某些内容外,是否还有其他情况需要清理数据(请注意,我知道清理也需要防止 XSS 攻击)。此外,我的习惯是清理几乎所有来自用户输入的变量,这是一个坏习惯吗?
最佳答案
每当您将数据存储在某个地方,并且如果该数据将被(毫无戒心的)用户读取/可用,那么您必须对其进行清理。因此,应该注意可能会改变用户体验的东西(不一定只是数据库)。通常,所有用户输入都被认为是不安全的,但您会在下一段中看到有些内容可能仍会被忽略,尽管我不推荐这样做。
仅在客户端上发生的事情会被清理以提供更好的用户体验(用户体验,考虑表单的 JS 验证 - 从安全的角度来看它是无用的,因为它很容易避免,但它可以帮助非恶意用户获得更好地与网站互动)但基本上,它不会造成任何伤害,因为一旦 session 关闭,数据(无论好坏)都会丢失。你总是可以为自己(在你的机器上)破坏一个网页,但问题是当有人可以为别人做的时候。
更直接地回答您的问题 - 不要担心做得太过分。安全总比后悔好,代价通常不会超过几毫秒。
关于php - 清理 PHP 变量,我是否过度使用了它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26597091/