首页 > PHP > php开发安全程序

php开发安全程序

2009年03月29号
查看评论 发表评论 1,607次浏览

可以到http://pecl.php.net/package/filter下载最新的版本。在编写本书时它仍处于beta版本。filter软件包提供了数据类型验证和数据编码两个功能,它提供以下几个主要函数:

filter_data–用于过滤数据;

filter_input–用于表单提交内容的过滤;

filter_var–变量内容的过滤,与filter_data和is_int()标准函数类似。

这3个函数绝大部分的功能都很类似,只不过应用于不同的场合,它们使用的参数也是通用的,如表5-5所示。

表5-5

常量名称
功 能

FILTER_VALIDATE_INT
验证为整数,可以指定范围

FILTER_VALIDATE_FLOAT
验证为浮点数

FILTER_ VALIDATE_REGEXP
匹配一个PCRE正则表达式模式

FILTER_ VALIDATE_URL
匹配一个URL

FILTER_ VALIDATE_EMAIL
匹配一个email地址

FILTER_SANITIZE_STRING
去除超文本标签

FILTER_SANITIZE_ENCODED
对字符串使用URL编码

FILTER_VALIDATE_IP
验证值是否为IP地址
下面举例说明,请见如下脚本:

<?php

var_dump(filter_data(‘ dujiang@ikang.com 为防备电子邮件地址收集器,这个 E-mail 地址被隐藏,你的浏览器必须支持 Javascript 才可看到这个邮件地址 ‘, FILTER_VALIDATE_EMAIL));

var_dump(filter_data(‘sobooo.com’, FILTER_VALIDATE_EMAIL));

?>

该脚本会输出如下的内容:

string(15) ” dujiang@ikang.com 为防备电子邮件地址收集器,这个 E-mail 地址被隐藏,你的浏览器必须支持 Javascript 才可看到这个邮件地址 ”

NULL

由于字符串”sobooo.com”因为不是邮件地址的格式,因此被过滤后,显示为NULL值。

再看下面使用filter_input验证表单的脚本例子:

<?php

// 如使用FILTER_VALIDATE_INT验证用户输入的QQ号码,表单有一个文本框名字为qq:

$qq = filter_input(INPUT_POST, ‘qq’, FILTER_VALIDATE_INT);

if (!empty($qq)) {

echo “<p>您的QQ号码: $qq</p>\n”;

} else {

echo ‘<p>请输入正确的QQ号码(应为纯数字)</p>’;

}

//使用URL 编码
$url = “http://post.sina.com.cn/file.php?a=1&b=编码”;
//显示被编码后的URL地址
echo filter_var($url, FILTER_SANITIZE_ENCODED);
?>

页面: 1 2 3 4

类别PHP 标签
  1. mulberry sale
    发表于 2010年06月14号 14时12分56秒 | 1楼

    i hope so

  2. cheap timberland boots
    发表于 2010年06月16号 03时55分44秒 | 2楼

    what a nice post.what a great website :o ) thanks

  3. purple ghd iv styler
    发表于 2010年06月16号 07时43分07秒 | 3楼

    This is a fine example.

  4. Kooba Handbags
    发表于 2010年06月21号 13时15分03秒 | 4楼

    I guess I had to think more about what you wrote before i can comment on it..

  5. mulberry bag
    发表于 2010年06月22号 17时17分05秒 | 5楼

    Have a great day.
    LOADS OF SUNSHINE TO BE ON YOU TODAY.

  6. bikini swimwear
    发表于 2010年07月10号 16时17分04秒 | 6楼

    Whoop whoop. I have a feeling this is becoming the best.Keep it up!:)

  7. skechers kids
    发表于 2010年07月19号 17时50分59秒 | 7楼

    Even though it will not be here tomorrow, the effect of it will.

  8. lebron basketball shoes
    发表于 2010年07月19号 20时36分28秒 | 8楼

    Hallelujah!

  9. timberland 6 inch boots
    发表于 2010年07月24号 21时55分08秒 | 9楼

    These words mean a great deal to me today. Truly, it is necessary to let go – I see that.

  10. Louboutin sale
    发表于 2010年07月25号 12时11分16秒 | 10楼

    Well that’s a honest and true quotation

  11. discount puma shoes
    发表于 2010年08月02号 14时20分37秒 | 11楼

    It’s heroic.It is as the candle burns itself to give light to others.

  1. 目前没有通告
你必需 登陆 才能发表评论.