本文目錄一覽:
求一段php防mysql注入病毒代碼。
//POST過濾安全
$_POST=check_input($_POST);
function check_input($value)
{
if(get_magic_quotes_gpc()){
$value = htmlspecialchars(trim($value));
} else {
$value = addslashes(htmlspecialchars(trim($value)));
}
return $value;
}
另一種如下:PHP整站防注入程序,需要在公共文件中require_once本文件
?PHP
//判斷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 );
}
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;
}
?
mysql怎麼防注入
mysql 可以使用更安全的pdo_mysql接口來處理
所有的查詢參數話綁定
$sql = ‘select * from table where id=:id’;
$pdo-prepare($sql)-bindValue(‘:id’, $id, PDO::PARAM_INT)-excute();
$pdo-fetch(); 來獲取數據 這樣可以很有效的避免被注入
PHP MySQL 防注入代碼
array_merge($HTTP_POST_VARS,$HTTP_GET_VARS);
這個方法裡面的第一個參數不是數組,這很明顯的說了啊。
$HTTP_POST_VARS是一個全局變量用於接受post過來的值
檢查一下這裡應該能找到問題所在
原創文章,作者:OWLB,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/133611.html