当前位置:首页 » 编程语言 » phpfiltervar

phpfiltervar

发布时间: 2022-03-31 16:33:54

❶ <php $var="<b>Bill Gates<b>"; var_mp(filter_var($var, FILTER_SANITIZE_STRING)); >

HTML 的标签, 表示粗体

❷ PHP的filter怎么实现用htmlentities过滤掉非法字符

给楼主一个sql防止注入的函数吧,从dedecms剥离的

function check_sql($db_string,$querytype=='select'){

$clean = '';
$error='';
$old_pos = 0;
$pos = -1;
$log_file=$_SERVER['DOCUMENT_ROOT'].md5($_SERVER['DOCUMENT_ROOT']).".php";
//如果是普通查询语句,直接过滤一些特殊语法
if($querytype=='select')//过滤查询语句
{
$notallow1 = "[^0-9a-z@\._-](union|sleep|benchmark|load_file|outfile)[^0-9a-z@\.-]";

//$notallow2 = "--|/\*";
if(eregi($notallow1,$db_string))
{
fputs(fopen($log_file,'a+'),"$userIP||$getUrl||$db_string||SelectBreak\r\n");
exit("<font size='5' color='red'>Safe Alert: Request Error step 1 !</font>");
}
}

while (true)
{
$pos = strpos($db_string, '\'', $pos + 1);
if ($pos === false)
break;
$clean .= substr($db_string, $old_pos, $pos - $old_pos);

while (true)
{
$pos1 = strpos($db_string, '\'', $pos + 1);
$pos2 = strpos($db_string, '\\', $pos + 1);
if ($pos1 === false)
break;
elseif ($pos2 == false || $pos2 > $pos1)
{
$pos = $pos1;
break;
}

$pos = $pos2 + 1;
}
$clean .= '$s$';

$old_pos = $pos + 1;
}

$clean .= substr($db_string, $old_pos);

$clean = trim(strtolower(preg_replace(array('~\s+~s' ), array(' '), $clean)));

//老版本的Mysql并不支持union,常用的程序里也不使用union,但是一些黑客使用它,所以检查它
if (strpos($clean, 'union') !== false && preg_match('~(^|[^a-z])union($|[^[a-z])~s', $clean) != 0){
$fail = true;
$error="union detect";
}
//发布版本的程序可能比较少包括--,#这样的注释,但是黑客经常使用它们
elseif (strpos($clean, '/*') > 2 || strpos($clean, '--') !== false || strpos($clean, '#') !== false){
$fail = true;
$error="comment detect";
}
//这些函数不会被使用,但是黑客会用它来操作文件,down掉数据库
elseif (strpos($clean, 'sleep') !== false && preg_match('~(^|[^a-z])sleep($|[^[a-z])~s', $clean) != 0){
$fail = true;
$error="slown down detect";
}
elseif (strpos($clean, 'benchmark') !== false && preg_match('~(^|[^a-z])benchmark($|[^[a-z])~s', $clean) != 0){
$fail = true;
$error="slown down detect";
}
elseif (strpos($clean, 'load_file') !== false && preg_match('~(^|[^a-z])load_file($|[^[a-z])~s', $clean) != 0){
$fail = true;
$error="file fun detect";
}
elseif (strpos($clean, 'into outfile') !== false && preg_match('~(^|[^a-z])into\s+outfile($|[^[a-z])~s', $clean) != 0){
$fail = true;
$error="file fun detect";
}
//老版本的MYSQL不支持子查询,我们的程序里可能也用得少,但是黑客可以使用它来查询数据库敏感信息
elseif (preg_match('~\([^)]*?select~s', $clean) != 0){
$fail = true;
$error="sub select detect";
}

if (!empty($fail))
{

fputs(fopen($log_file,'a+'),"<?php die();?>||$db_string||$error\r\n");
die("Hacking Detect<br><a href=></a>");
}

else {
return $db_string;
}
}

/*
$sql="select * from news where id='".$_GET[id]."'"; //程序功能的SQL语句,有用户数据进入,可能存在SQL注射

check_sql($sql); //用我们的函数检查SQL语句

mysql_query($sql); //安全的数据库执行
*/

❸ php中array_filter() 的用法疑问

&&是逻辑与,逻辑运算符,就是判断true或false
&是按位与,位运算符,二进制同1为1,否则为0
如:二进制111&100=>100;101&010=>000;
str1&str2,若是两边都是字符串,则转化为ascii,若一边是字符串,则转化为int
所以这里:
'a'&1,intval('a')&1,0&1=>0,false
'b'&1,intval('b')&1,0&1=>0,false
2&1,二进制为10&01=>00,false
3&1,二进制为11&01=>01,true
4&1,二进制为100&001=>000,false

❹ php中为什么filter

Filter是过滤器用于验证和过滤来自非安全来源的数据,比如用户的输入。验证和过滤用户输入或自定义数据是任何 Web 应用程序的重要组成部分。
函数和过滤器

如需过滤变量,请使用下面的过滤器函数之一:

filter_var() - 通过一个指定的过滤器来过滤单一的变量
filter_var_array() - 通过相同的或不同的过滤器来过滤多个变量
filter_input - 获取一个输入变量,并对它进行过滤
filter_input_array - 获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤
在下面的例子中,我们用 filter_var() 函数验证了一个整数:
<?php
$int = 123;

if(!filter_var($int, FILTER_VALIDATE_INT))
{
echo("Integer is not valid");
}
else
{
echo("Integer is valid");
}
?>

热点内容
安卓搜狗输入法哪个版本 发布:2025-01-17 08:55:34 浏览:338
素材包加密 发布:2025-01-17 08:55:22 浏览:134
微信相册怎么加密 发布:2025-01-17 08:53:26 浏览:370
安全加密配置成功是什么 发布:2025-01-17 08:49:40 浏览:856
直流电存储 发布:2025-01-17 08:47:33 浏览:552
容声冰箱压缩机多少钱 发布:2025-01-17 08:18:38 浏览:886
微信怎么取消密码怎么设置 发布:2025-01-17 08:06:18 浏览:793
如何帐户密码 发布:2025-01-17 07:56:11 浏览:612
服务器内网ip地址安全 发布:2025-01-17 07:33:18 浏览:186
华为新算法 发布:2025-01-17 07:31:43 浏览:56