當前位置:首頁 » 編程語言 » php過濾非法字元

php過濾非法字元

發布時間: 2022-09-11 05:09:16

『壹』 php 如何過濾特殊字元 如◆

可以用 str_replace() 函數統一替換,如:
$string = "測試◆例子♂ 在此 !";
$replace = array('◆','♂',')','=','+','$','¥','-','、','、',':',';','!','!','/');
$string = str_replace($replace, '', $string);
echo $string;

『貳』 PHP中如何過濾掉非漢字字元

首先需要先把帶有中文的字元串進行編碼轉化,由GB2312編碼轉化為UTF-8編碼。
這樣是為了PHP正則表達式可以正確的去匹配
然後通過preg_match_all()函數以及相應的中文匹配正則表達式,把所有的中文匹配出來
最後,把匹配到的中文字元串再轉為B2312編碼,這樣做是為了可以在網頁編碼為GB2312上正確顯示。

例如:
<?php
$str = "ddddvvv(,中文.)dfdsfds字元啊.";

//把GB2312編碼轉化為 UTF-8編碼
$str = mb_convert_encoding($str, 'UTF-8', 'GB2312');

//正則匹配
preg_match_all('/[\x{4e00}-\x{9fff}]+/u', $str, $matches);

//把匹配到的數組連接為字元串
$str = implode('', $matches[0]);

//把UTF-8編碼轉化為 GB2312編碼
$str = mb_convert_encoding($str, 'GB2312', 'UTF-8');

echo $str;
//輸出 中文字元啊
?>

『叄』 PHP 如何過濾特殊字元 如 ◆ )- : 、 、!! / 等

PHP 中的 preg_replace() 函數可以實現

實例:只匹配中文


<?php
$str="php)!!編程";
echopreg_replace("/[^x{4e00}-x{9fa5}]/iu",'',$str);
?>

『肆』 php 如何過濾特殊字元,如 ◆ )- : 、 、!! /   等

可以用 str_replace() 函數統一替換,如:
$string = "測試◆例子♂ 在此 !";
$replace = array('◆','♂',')','=','+','$','¥','-','、','、',':',';','!','!','/');
$string = str_replace($replace, '', $string);
echo $string;

『伍』 php怎樣過濾非法字元防止sql注入

htmlspecialchars($_POST['欄位']),用這個函數就可以將一些特殊字元進行過濾轉義。你可以去看看這個函數的說明。

『陸』 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字元串中特殊符號的過濾方法介紹

本篇文章主要是對PHP字元串中特殊符號的過濾方法進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
有時候我們會遇到過濾字元串中特殊字元的問題,本文提供了一個處理特殊字元串的方法,可能有遺漏,如果讀者發現了可以
代碼如下:
function
strFilter($str){

$str
=
str_replace('`',
'',
$str);

$str
=
str_replace('·',
'',
$str);

$str
=
str_replace('~',
'',
$str);

$str
=
str_replace('!',
'',
$str);

$str
=
str_replace('!',
'',
$str);

$str
=
str_replace('@',
'',
$str);

$str
=
str_replace('#',
'',
$str);

$str
=
str_replace('$',
'',
$str);

$str
=
str_replace('¥',
'',
$str);

$str
=
str_replace('%',
'',
$str);

$str
=
str_replace('^',
'',
$str);

$str
=
str_replace('……',
'',
$str);

$str
=
str_replace('&',
'',
$str);

$str
=
str_replace('*',
'',
$str);

$str
=
str_replace('(',
'',
$str);

$str
=
str_replace(')',
'',
$str);

$str
=
str_replace('(',
'',
$str);

$str
=
str_replace(')',
'',
$str);

$str
=
str_replace('-',
'',
$str);

$str
=
str_replace('_',
'',
$str);

$str
=
str_replace('——',
'',
$str);

$str
=
str_replace('+',
'',
$str);

$str
=
str_replace('=',
'',
$str);

$str
=
str_replace('|',
'',
$str);

$str
=
str_replace('',
'',
$str);

$str
=
str_replace('[',
'',
$str);

$str
=
str_replace(']',
'',
$str);

$str
=
str_replace('【',
'',
$str);

$str
=
str_replace('】',
'',
$str);

$str
=
str_replace('{',
'',
$str);

$str
=
str_replace('}',
'',
$str);

$str
=
str_replace(';',
'',
$str);

$str
=
str_replace(';',
'',
$str);

$str
=
str_replace(':',
'',
$str);

$str
=
str_replace(':',
'',
$str);

$str
=
str_replace(''',
'',
$str);

$str
=
str_replace('"',
'',
$str);

$str
=
str_replace('“',
'',
$str);

$str
=
str_replace('”',
'',
$str);

$str
=
str_replace(',',
'',
$str);

$str
=
str_replace(',',
'',
$str);

$str
=
str_replace('<',
'',
$str);

$str
=
str_replace('>',
'',
$str);

$str
=
str_replace('《',
'',
$str);

$str
=
str_replace('》',
'',
$str);

$str
=
str_replace('.',
'',
$str);

$str
=
str_replace('。',
'',
$str);

$str
=
str_replace('/',
'',
$str);

$str
=
str_replace('、',
'',
$str);

$str
=
str_replace('?',
'',
$str);

$str
=
str_replace('?',
'',
$str);

return
trim($str);
}

『捌』 php 如何過濾 單引號 雙引號 $ < > 等N種特殊符號謝謝

我給樓主吧- - 首先是過濾html,將html編碼轉換為實體編碼 /**
* 將特殊字元轉成 HTML 格式。
* @param string $value - 字元串或者數組
* @return array
*/
public static function htmlspecialchars($value) {
return is_array($value) ? array_map('k::htmlspecialchars', $value) :
preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1',
str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $value));
} 還有一個去除html編碼的,可以直接用php的函數strip_tags()

『玖』 php 清除字元串非法字元

$str="x80x802018";
$code=array(
"x80",
" ",
);
$str=str_replace($code,'',$str);
var_mp($str);

可以這樣把特殊字元去掉,發現有什麼特殊字元,就加在code數組裡面,最後列印出來的長度就只有4了。

『拾』 php如何防止sql注入

PHP防止sql注入是一個比較低級的問題了,這個問題其實在我大一上學期做第一個個人博客的時候就已經關注過了,不過簡單的說一下關於PHP防注入的方式吧。


對於現在的防注入技術其實已經成熟了,對於一個站點該關心的不是防注入了,而是大規模高並發如何處理的問題,或者關於各種其他漏洞,比如現在世界上仍然有百分之80使用redis的站點存在redis漏洞,通過redis漏洞可以直接拿到機器的訪問許可權,一般來說都是直接給你種一個挖礦機器人來。

熱點內容
手機手勢密碼忘了怎麼辦 發布:2025-01-12 17:14:51 瀏覽:486
這手機配置有什麼顏色的電視機 發布:2025-01-12 17:02:19 瀏覽:933
閣源碼 發布:2025-01-12 16:48:08 瀏覽:131
組裝機箱搭建伺服器 發布:2025-01-12 16:46:58 瀏覽:512
風險資產配置理論有哪些 發布:2025-01-12 16:46:13 瀏覽:982
小程序分銷源碼 發布:2025-01-12 16:42:41 瀏覽:48
linux查看系統硬體 發布:2025-01-12 16:34:26 瀏覽:969
安卓手機怎麼設置獨享標志 發布:2025-01-12 16:27:56 瀏覽:933
我的世界如何把材質包放進伺服器 發布:2025-01-12 16:11:14 瀏覽:57
使用hmailserver搭建郵件伺服器 發布:2025-01-12 16:05:43 瀏覽:810