以往,对于常见的SQL注入等漏洞,采取的方式一般都是对数据进行过滤,而对$_GET/$_POST/$_COOKIE/$_SERVER等全局数组变量的直接使用是不够安全的,故PHP 5.2.0版本以后,推出Filter系列函数,对外部脚本的数据进行过滤,比如POST表单中的email邮箱进行验证,则将$filter参数设置为FILTER_VALIDATE_EMAIL即可。

函数名:filter_input

作用:从脚本外部获取输入,并进行过滤。用于对来自非安全来源的变量进行验证,比如用户的输入。

格式:mixed filter_input(int $type , string $variable [, int $filter = FILTER_DEFAULT [,mixed $options]])

返回值:如果成功,则返回被过滤的数据,如果失败,则返回false,如果variable参数未设置,则返回NULL。

参数说明:

参数 描述
type 必需。规定输入类型。INPUT_GET、INPUT_POST、INPUT_COOKIE、INPUT_ENV、INPUT_SERVER
variable 必需。规定要过滤的变量。
filter

可选。规定要使用的过滤器的ID。默认是FILTER_DEFAULT。

过滤器ID可以是ID名称(比如FILTER_VALIDATE_EMAIL),或ID号(比如 274)。

PHP手册:http://www.php.net/manual/zh/filter.filters.php

options 可选。规定包含标志/选项的数组。检查每个过滤器可能的标志和选项。

示例:

 $_GET['search'] = 'foo'; // This has no effect on the filter_input

 $search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);
echo "You have searched for $search_html.\n";
echo "<a href='?search=$search_url'>Search again.</a>"; //示例代码来自PHP手册中的评论
//http://www.php.net/manual/zh/function.filter-input.php#99124

PHP filter_input() 函数的更多相关文章

  1. filter_input() 函数

    定义和用法 filter_input() 函数从脚本外部获取输入,并进行过滤. 本函数用于对来自非安全来源的变量进行验证,比如用户的输入. 本函数可从各种来源获取输入: INPUT_GET INPUT ...

  2. PHP常用函数大全

    usleep() 函数延迟代码执行若干微秒.unpack() 函数从二进制字符串对数据进行解包.uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.time_sleep_until() ...

  3. PHP常用函数备用

    刚学习php的时候,我也为记忆php函数苦恼不已.认为干嘛记忆这么枯燥无味的东西呢?用的时候查一下手册不就行了吗?但是当时因为身在辅导机构,还是记忆了一大堆自己并不感兴趣的函数. 由此就想起来,小的时 ...

  4. PHP常用函数大全。

    php usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. time_sleep_ ...

  5. 最全的PHP常用函数大全

    PHP的一些常用函数 quotemeta() 函数在字符串中某些预定义的字符前添加反斜杠. quoted_printable_decode() 函数对经过 quoted-printable 编码后的字 ...

  6. PHP 各种函数

    usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. time_sleep_unti ...

  7. php函数整理

    php usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. time_sleep_ ...

  8. 【笔记】php常用函数

    phpusleep() 函数延迟代码执行若干微秒.unpack() 函数从二进制字符串对数据进行解包.uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.time_sleep_unti ...

  9. PHP常用函数大全500+

    php usleep() //函数延迟代码执行若干微秒. unpack() //函数从二进制字符串对数据进行解包. uniqid() //函数基于以微秒计的当前时间,生成一个唯一的 ID. time_ ...

随机推荐

  1. [mysql]当mysql查询语句查询的结果为空时,返回query结果是什么类型的呢?

    php > $con = mysql_connect('localhost' , 'hnb' , 'alyHnb2015'); php > print_r($con);Resource i ...

  2. C# 根据偶数、奇数加载不同颜色

    效果图: C#后台代码 //偶数随机 Random evenRanm = new Random(); //奇数随机 Random oddRanm = new Random(); string[] li ...

  3. Flask系列09--Flask中WTForms插件,及自定义验证器

    一.概述 django中的forms组件非常的方便,在flask中有WTForms的组件实现的也是类似的功能, 安装这个插件 二.简单使用 文档地址https://wtforms.readthedoc ...

  4. Akka(20): Stream:异步运算,压力缓冲-Async, batching backpressure and buffering

    akka-stream原则上是一种推式(push-model)的数据流.push-model和pull-model的区别在于它们解决问题倾向性:push模式面向高效的数据流下游(fast-downst ...

  5. Android必学之AsyncTask

    AsyncTask,即异步任务,是Android给我们提供的一个处理异步任务的类.通过此类,可以实现UI线程和后台线程进行通讯,后台线程执行异步任务,并把结果返回给UI线程. .为什么需要使用异步任务 ...

  6. 【spring cloud】服务启动后正常,但是无法上线,一直处于down状态

    spring cloud eureka 如果出现某个应用实例 down(1), 说明 spring admin 健康检测没有通过导致 eureka 注册中心不会把这个实例从列表中删除掉. 这样所有使用 ...

  7. cytoscape.js在vue项目中的安装及案例

    1. 安装: npm i cytoscape --save 2. 引入:main.js import cytoscape from 'cytoscape'; Vue.prototype.$cytosc ...

  8. 01-Linux的基本指令

    Linux的基本指令 基础指令(重点) 1.ls指令: 含义:ls(list) 用法1:#ls 含义:列出当前工作目录下的所有文件/文件夹的名称 用法2:#ls  路径 含义:列出指定路径下的所有文件 ...

  9. [视频]K8飞刀 ms15022 office漏洞演示动画

    [视频]K8飞刀 ms15022 office漏洞演示动画 https://pan.baidu.com/s/1eQnV8qQ

  10. POJ 2726

    #include <iostream> #include <algorithm> #define MAXN 10005 using namespace std; struct ...