php - 清理 PHP 变量,我是否过度使用了它?

标签 php mysql sanitize

我使用 PHP 已经有一段时间了,我开始问自己是否养成了良好的习惯。

我认为其中之一是过度使用 PHP 清理方法,例如,一个用户通过表单注册,我得到以下帖子变量:

$_POST['name']$_POST['email']$_POST['captcha']。现在,我通常做的显然是对要放入 MySQL 的数据进行清理,但是在比较验证码时,我也会对其进行清理。

因此我相信我误解了 PHP 清理,我很好奇,除了使用它在 MySQL 中放置某些内容外,是否还有其他情况需要清理数据(请注意,我知道清理也需要防止 XSS 攻击)。此外,我的习惯是清理几乎所有来自用户输入的变量,这是一个坏习惯吗?

最佳答案

每当您将数据存储在某个地方,并且如果该数据将被(毫无戒心的)用户读取/可用,那么您必须对其进行清理。因此,应该注意可能会改变用户体验的东西(不一定只是数据库)。通常,所有用户输入都被认为是不安全的,但您会在下一段中看到有些内容可能仍会被忽略,尽管我不推荐这样做。

仅在客户端上发生的事情会被清理以提供更好的用户体验(用户体验,考虑表单的 JS 验证 - 从安全的角度来看它是无用的,因为它很容易避免,但它可以帮助非恶意用户获得更好地与网站互动)但基本上,它不会造成任何伤害,因为一旦 session 关闭,数据(无论好坏)都会丢失。你总是可以为自己(在你的机器上)破坏一个网页,但问题是当有人可以为别人做的时候。

更直接地回答您的问题 - 不要担心做得太过分。安全总比后悔好,代价通常不会超过几毫秒。

关于php - 清理 PHP 变量,我是否过度使用了它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26597091/

相关文章:

C# 清理文件名

php - symfony 形式的另一个日期之后的日期

php - 如何在jquery数据表的ajax调用中发布参数

php - 我需要关闭 prestashop 中的数据库 session 吗

MySQL 将行转为动态数量的列

php - 何时过滤/清理数据 : before database insertion or before display?

html - Rails 清理方法不删除 html 标签

php - 我可以对 undefined variable 使用empty()吗?

mysql - magento 注册用户详细信息存储在哪里

php - 使用 Laravel 4.2 MySQL 查询限制每个类别的结果