繁體 | Eng
收藏夾
-> -> -> - >
[解決方案]主題: PHP整站防註入程序 ...   發佈者: phpfans
01/28/2016
Visit:31 ,Today:1

PHP整站防註入程序

htmlspecialchars無法防註入

本函數將特殊字符轉成 HTML 的字符串格式 ( &....; )。至常用到的場闔可能就是處理客戶留言的留言版瞭。

* &- ---- 轉成 &

* " ---- 轉成 "

* < ---- 轉成 <

* > ---- 轉成 >

很多程序用它做用戶名過濾,本函數沒過濾 ' , 空格 ( ) ; 所以SQLi仍然可以。

PHP整站防註入程序,需要在公共文件中require_once本文件,因爲現在網站被註入攻擊現象很嚴重,所以推薦大傢使用

<?PHP

//PHP整站防註入程序,需要在公共文件中require_once本文件

//判斷magic_quotes_gpc狀態

if (@get_magic_quotes_gpc ()) {

$_GET = sec ( $_GET );

$_POST = sec ( $_POST );

$_COOKIE = sec ( $_COOKIE );

$_FILES = sec ( $_FILES );

}

$_SERVER = sec ( $_SERVER );

function sec(&$array) {

//如果是數組,遍曆數組,遞歸調用

if (is_array ( $array )) {

foreach ( $array as $k => $v ) {

$array [$k] = sec ( $v );

}

} else if (is_string ( $array )) {

//使用addslashes函數來處理

$array = addslashes ( $array );

} else if (is_numeric ( $array )) {

$array = intval ( $array );

}

return $array;

}

//整型過濾函數

function num_check($id) {

if (! $id) {

die ( '參數不能爲空!' );

} //是否爲空的判斷

else if (inject_check ( $id )) {

die ( '非法參數' );

} //註入判斷

else if (! is_numetic ( $id )) {

die ( '非法參數' );

}

//數字判斷

$id = intval ( $id );

//整型化

return $id;

}

//字符過濾函數

function str_check($str) {

if (inject_check ( $str )) {

die ( '非法參數' );

}

//註入判斷

$str = htmlspecialchars ( $str );

//轉換html

return $str;

}

function search_check($str) {

$str = str_replace ( "_", "\_", $str );

//把"_"過濾掉

$str = str_replace ( "%", "\%", $str );

//把"%"過濾掉

$str = htmlspecialchars ( $str );

//轉換html

return $str;

}

//錶單過濾函數

function post_check($str, $min, $max) {

if (isset ( $min ) && strlen ( $str ) < $min) {

die ( '至少$min字節' );

} else if (isset ( $max ) && strlen ( $str ) > $max) {

die ( '至多$max字節' );

}

return stripslashes_array ( $str );

}

//防註入函數

function inject_check($sql_str) {

return eregi ( 'select|inert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|UNION|into|load_file|outfile', $sql_str );

// www.jb51.net 進行過濾,防註入

}

function stripslashes_array(&$array) {

if (is_array ( $array )) {

foreach ( $array as $k => $v ) {

$array [$k] = stripslashes_array ( $v );

}

} else if (is_string ( $array )) {

$array = stripslashes ( $array );

}

return $array;

}

?>

 
最後更新: 2016-01-28 15:37:21
  • 評判這條信息 - 歡迎發表意見/建議 : PHP整站防註入程序

    * 必須填寫的資訊

    優秀信息 分類錯誤 違禁信息 垃圾信息 過期 其它

    姓名: *
    詳細內容: *
    聯繫電話:
    詳細地址:
    郵遞區號:
    電子信箱:
    網址URL:
    驗證碼:*
    passcode

搜索相关: 電腦外設 - UPS與電源 - 其他 - 主機配件 - 軟體設計 - 電腦、軟體 - 伺服器、工作站 - 資訊技術合作 - 網站建設 - MP3 - 郵箱、網盤 - 網路工程 - 網路設備、配件 - 安全、病毒防治 - 二手設備 - 消耗品 - 電腦 - 域名、虛擬主機 - 軟體 - IC卡 - 筆記本電腦

©2024 孫悟空