消除PHP变量,我是否过度使用它?

Cri*_*n D 6 php mysql sanitize

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

其中一个是我所相信的,包括过度使用PHP清理方法,例如,一个用户通过表单注册,我得到以下帖子变量:

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

因此我相信我误解了PHP消毒,我很好奇,除了使用它在MySQL中放置东西之外,还有其他任何需要消毒数据的情况(注意我知道还需要消毒以防止XSS攻击).此外,我的习惯是消毒几乎所有来自用户输入的变量,一个糟糕的变量?

Sho*_*omz 4

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

仅在客户端上发生的事情会被清理,只是为了更好的 UX(用户体验,考虑表单的 JS 验证 - 从安全角度来看,它是无用的,因为它很容易避免,但它可以帮助非恶意用户更好地与网站),但基本上,它不会造成任何损害,因为一旦会话关闭,数据(好或坏)就会丢失。您始终可以为自己(在您的计算机上)销毁网页,但问题是有人可以为其他人做这件事。

更直接地回答你的问题——永远不要担心做得太过分。安全总比后悔好,而且成本通常不超过几毫秒。