background image

php 中使用过滤功能的输入验证

PHP 的过滤功能可能不性感,但如果你学会了如何正确地使用它们,它们可以改善

的稳定性,安全性,甚至你的代码的可维护性。

    

在以下的内容中将解释为什么输入验证是非常重要的,重要的是为什么使用内置函数执

行输入验证

PHPS,然后扔在一起的一些例子(即使用 filter_input()和 filter_var() ),讨论了一

些潜在的隐患。
 
    为什么要输入验证是非常重要
    输入验证是其中一个最重要的事情可以做,以确保代码的安全性,因为输入的是经常的
一件事对您的应用程序,你不能直接控制。因为你无法控制它,你可以不相信它。
不幸的是,作为程序员,我们往往只想到如何,我们希望他们的工作写的东西。我们不考虑
别人可能会想如何使他们的工作

 - 无论是出于好奇,无知或恶意。

我现在不打算进入太多有关你可以获取到,如果你不没有验证用户输入的麻烦的细节

;有是

1 称为这个非常网站真的很好的文章 PHP 的安全性:跨站点脚本攻击是否要读了上它。但我
会说,验证您输入的是确保你所编写的代码将被执行,如预期的第一步。
    也许你到 PHP,从另一种语言,你可能会想,“这是从来没有一个问题之前,我为什么
要关心?

”验证的原因是一个问题,是因为 PHP 是松散类型。这使得 PHP 的一些事情,但它

可以使像数据验证的事情有点麻烦,因为你几乎可以通过任何东西。
 
    为什么使用内置方法是很重要
为 了 尝 试 , 使 验 证 更 容 易 一 点 点 从

PHP  5.2.0 起 , 我 们 现 在 可 以 使 用 filter_input() 和

filter_var()函数。谈论他们,我会尽快在更多的细节,但首先我想谈谈我们为什么要使用
PHP 提供的,而不是依靠我们自己的方法或第三方工具的功能。

    你用你自己的验证方法时,你通常落入同样的陷阱,你可以设计其他功能时落入边缘的
情况下,你要想想你想想,不一定所有的,可以用来掩盖不同载体某些输入。另一个问题是,
如果你是像我这样的事,任何代码审查处理手卷验证码第

10 分钟花在 tutting 因为程序员没

有这样做你会做什么。这可能导致程序员花费更多的时间学习的

codebase 和阅读,可代替

用于编码的内部文件。

    有些人不推出自己的,而是选择一个第三方的解决方案。也有一些好的,在那里,在过
去,我已经使用

OWASP 的 ESAPI 一些额外的验证。这些比也许手卷的解决方案更好,因为

更多的眼睛都在看着他们,但你必须引入第三方的代码到您的项目的问题。再次,这增加了
时间花在学习代码库和阅读其他文档,而不是编码。
由于这些原因,使用本机的功能是更好的

;此外,由于这些功能是烤成的语言,这意味着我

们有一个地方去所有的

PHP 文件。新的开发将有一个更大的机会,知道代码是什么,以及

如何最好地使用它。作为这一结果的支持,它会更容易。
     
   一些例子
filter_input()函数在 PHP 5.2.0 中引入,并允许你得到外部变量的名字和过滤。时处理的 $ 
_GET 和$ ??_POST 数据,这是非常有用的。
   让我们看看一个简单的页面,上面写着从 URL 传递一个值,并处理它作为一个例子。我
们知道,这个值应该是

15 和 20 之间的整数。