我知道许多人认为用PHP编辑Superglobals是错误的。但我发现自己总是在我的webapp的每个控制器中修剪用户输入。为了一劳永逸地解决这个问题,我现在只需修剪这些Superglobals的所有值:
# trim ALL inputs
foreach ($_REQUEST as $key => $value) {
$_REQUEST[$key] = trim($value);
}
foreach ($_COOKIE as $key => $value) {
$_COOKIE[$key] = trim($value);
}
foreach ($_GET as $key => $value) {
$_GET[$key] = trim($value);
}
foreach ($_POST as $key => $value) {
$_POST[$key] = trim($value);
}
某些用户可能希望定义以空格开头或结尾的密码。除此之外,我无法想到修剪可能造成任何伤害的任何用例。
是否还有其他人试图修剪这些Superglobals并遇到我应该注意的奇怪副作用?