摘要:在对用户输入数据进行过滤时通常都是自己写方法进行判断比如验证邮箱的时候使用正则表达式邮件格式有误如果不用正则还有其它跟简单的方法吗使用相关函数是否存在指定类型的变量。获取多项变量,并进行过滤。
在对用户输入数据进行过滤时通常都是自己写方法进行判断
比如验证邮箱的时候使用正则表达式
$pattern = "/w+([-+."]w+)*@w+([-.]w+)*.w+([-.]w+)*/"; if (!preg_match($pattern, $email)) { throw new Exception(self::ERROR_PARAMETER_EMPTY . "_邮件格式有误:" . $email); }
如果不用正则还有其它跟简单的方法吗?
使用filter相关函数filter_has_var(type, variable) 是否存在指定类型的变量。filter_has_var
filter_input 从脚本外部获取输入,并进行过滤。
filter_input_array 从脚本外部获取多项输入,并进行过滤。
filter_var 获取一个变量,并进行过滤。
filter_var_array 获取多项变量,并进行过滤。
判断$_GET 的结果是否包含name
if(!filter_has_var(INPUT_GET, "name")) { echo("name 不存在"); } else { echo("name 存在"); }filter_input
看一个验证邮箱的例子
if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) { echo "E-Mail is not valid"; } else { echo "E-Mail is valid"; }filter_input_array
对整个input源进行过滤
$filters = array ( "name" => array ( "filter"=>FILTER_CALLBACK, "flags"=>FILTER_FORCE_ARRAY, "options"=>"ucwords" ), "age" => array ( "filter"=>FILTER_VALIDATE_INT, "options"=>array ( "min_range"=>1, "max_range"=>120 ) ), "email"=> FILTER_VALIDATE_EMAIL, ); print_r(filter_input_array(INPUT_POST, $filters));filter_var,filter_var_array
不需要input源,直接对值进行过滤
if(!filter_var("someone@example....com", FILTER_VALIDATE_EMAIL)) { echo("E-mail is not valid"); } else { echo("E-mail is valid"); }input源的范围 验证 其它过滤方法
strip_tags 删除html标签
htmlentities 把字符转换为 HTML 实体,(还会把货币表示符号欧元英镑等、版权符号等转义)
htmlspecialchars 函数把预定义的字符转换为 HTML 实体。
预定义的字符是:
& (和号)成为 &
" (双引号)成为 "
" (单引号)成为 "
< (小于)成为 <
(大于)成为 >
*提示:如需把特殊的 HTML 实体转换回字符,请使用 htmlspecialcharsdecode() 函数。
$input = "我是标题";
echo htmlspecialchars($input) . "
";
echo htmlentities($input) . "
";
echo strip_tags($input) . "
";
$input = "-- "select * from ";
echo addslashes($input) . "
";
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/29692.html
摘要:过滤验证和转义不要相信任何来自不受自己直接控制的数据源中的数据。加密和哈希不是一回事,加密是双向算法,加密的数据可以被解密。使用密码哈希简化计算密码哈希和验证密码的操作。密码的哈希值存储在类型的数据库列中。 过滤、验证和转义 1).不要相信任何来自不受自己直接控制的数据源中的数据。包括但不限于: $_GET $_POST $_REQUEST $_COOKIE $argv php://...
摘要:由于越来越多的项目开始使用框架,所以,很多的程序员也不在关心安全的问题因为框架已经帮我们几乎完美的处理了但是,个人认为,我们还是需要了解一下常用的安全处理函数原因简单很多小的功能和项目是用不到框架的,我们需要自己解决安全问题常用的安全函数有 由于越来越多的项目开始使用框架,所以,很多的程序员也不在关心安全的问题!因为框架已经帮我们几乎完美的处理了!但是,个人认为,我们还是需要了解一下常...
阅读 2473·2021-11-16 11:45
阅读 2443·2021-10-11 10:59
阅读 2251·2021-10-08 10:05
阅读 3813·2021-09-23 11:30
阅读 2369·2021-09-07 09:58
阅读 789·2019-08-30 15:55
阅读 772·2019-08-30 15:53
阅读 1922·2019-08-29 17:00