輸入值/表單提交參數(shù)過(guò)濾有效防止sql注入的方法
更新時(shí)間:2013年12月25日 15:10:00 作者:
輸入值/表單提交參數(shù)過(guò)濾可以有效防止sql注入或非法攻擊,下面為大家介紹些不錯(cuò)的方法,感興趣的不要錯(cuò)過(guò)
輸入值/表單提交參數(shù)過(guò)濾,防止sql注入或非法攻擊的方法:
/**
* 過(guò)濾sql與php文件操作的關(guān)鍵字
* @param string $string
* @return string
* @author zyb <zyb_icanplay@163.com>
*/
private function filter_keyword( $string ) {
$keyword = 'select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile';
$arr = explode( '|', $keyword );
$result = str_ireplace( $arr, '', $string );
return $result;
}
/**
* 檢查輸入的數(shù)字是否合法,合法返回對(duì)應(yīng)id,否則返回false
* @param integer $id
* @return mixed
* @author zyb <zyb_icanplay@163.com>
*/
protected function check_id( $id ) {
$result = false;
if ( $id !== '' && !is_null( $id ) ) {
$var = $this->filter_keyword( $id ); // 過(guò)濾sql與php文件操作的關(guān)鍵字
if ( $var !== '' && !is_null( $var ) && is_numeric( $var ) ) {
$result = intval( $var );
}
}
return $result;
}
/**
* 檢查輸入的字符是否合法,合法返回對(duì)應(yīng)id,否則返回false
* @param string $string
* @return mixed
* @author zyb <zyb_icanplay@163.com>
*/
protected function check_str( $string ) {
$result = false;
$var = $this->filter_keyword( $string ); // 過(guò)濾sql與php文件操作的關(guān)鍵字
if ( !empty( $var ) ) {
if ( !get_magic_quotes_gpc() ) { // 判斷magic_quotes_gpc是否為打開
$var = addslashes( $string ); // 進(jìn)行magic_quotes_gpc沒有打開的情況對(duì)提交數(shù)據(jù)的過(guò)濾
}
//$var = str_replace( "_", "\_", $var ); // 把 '_'過(guò)濾掉
$var = str_replace( "%", "\%", $var ); // 把 '%'過(guò)濾掉
$var = nl2br( $var ); // 回車轉(zhuǎn)換
$var = htmlspecialchars( $var ); // html標(biāo)記轉(zhuǎn)換
$result = $var;
}
return $result;
}
復(fù)制代碼 代碼如下:
/**
* 過(guò)濾sql與php文件操作的關(guān)鍵字
* @param string $string
* @return string
* @author zyb <zyb_icanplay@163.com>
*/
private function filter_keyword( $string ) {
$keyword = 'select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile';
$arr = explode( '|', $keyword );
$result = str_ireplace( $arr, '', $string );
return $result;
}
/**
* 檢查輸入的數(shù)字是否合法,合法返回對(duì)應(yīng)id,否則返回false
* @param integer $id
* @return mixed
* @author zyb <zyb_icanplay@163.com>
*/
protected function check_id( $id ) {
$result = false;
if ( $id !== '' && !is_null( $id ) ) {
$var = $this->filter_keyword( $id ); // 過(guò)濾sql與php文件操作的關(guān)鍵字
if ( $var !== '' && !is_null( $var ) && is_numeric( $var ) ) {
$result = intval( $var );
}
}
return $result;
}
/**
* 檢查輸入的字符是否合法,合法返回對(duì)應(yīng)id,否則返回false
* @param string $string
* @return mixed
* @author zyb <zyb_icanplay@163.com>
*/
protected function check_str( $string ) {
$result = false;
$var = $this->filter_keyword( $string ); // 過(guò)濾sql與php文件操作的關(guān)鍵字
if ( !empty( $var ) ) {
if ( !get_magic_quotes_gpc() ) { // 判斷magic_quotes_gpc是否為打開
$var = addslashes( $string ); // 進(jìn)行magic_quotes_gpc沒有打開的情況對(duì)提交數(shù)據(jù)的過(guò)濾
}
//$var = str_replace( "_", "\_", $var ); // 把 '_'過(guò)濾掉
$var = str_replace( "%", "\%", $var ); // 把 '%'過(guò)濾掉
$var = nl2br( $var ); // 回車轉(zhuǎn)換
$var = htmlspecialchars( $var ); // html標(biāo)記轉(zhuǎn)換
$result = $var;
}
return $result;
}
相關(guān)文章
php字符串函數(shù)學(xué)習(xí)之substr()
這篇文章主要介紹了php字符串函數(shù)學(xué)習(xí)之substr(),本文講解了它的定義和用法、參數(shù)描述、提示和注釋以及多個(gè)使用示例 ,需要的朋友可以參考下2015-03-03
php+MySQL判斷update語(yǔ)句是否執(zhí)行成功的方法
這篇文章主要介紹了php+MySQL判斷update語(yǔ)句是否執(zhí)行成功的方法,可以通過(guò)mysql_affected_rows方法加以實(shí)現(xiàn),需要的朋友可以參考下2014-08-08
php使用escapeshellarg時(shí)中文被過(guò)濾的解決方法
這篇文章主要介紹了php使用escapeshellarg時(shí)中文被過(guò)濾的解決方法,測(cè)試后發(fā)現(xiàn)問題的原因是shell和apache php-cgi的運(yùn)行環(huán)境不同引起的,需要的朋友可以參考下2016-07-07
php下用GD生成生成縮略圖的兩個(gè)選擇和區(qū)別
php下用GD生成生成縮略圖的兩個(gè)選擇和區(qū)別...2007-04-04
如何使用Casbin作為ThinkPHP的權(quán)限控制中間件
本文介紹了如何使用Casbin作為ThinkPHP的權(quán)限控制中間件,感興趣的同學(xué),可以參考下,理解其原理。2021-05-05

