SQL アンチインジェクション コード 1
コードをコピー コードは次のとおりです:
/**
* SQL インジェクションを防止します
* @author: zhuyubing@gmail.com
**/
/**
* SQL インジェクトを拒否
*/
if (!function_exists (quote))
{
function quote($var)
{
if (strlen($var))
{
$var=!get_magic_quotes_gpc() $var :tripslashes($var); ,"'" ,$var);
}
return "'$var'"
}
}
if (!function_exists (hash_num)){
function hash_num( $input)
{
$hash = 5381;
for ($i = 0; $i < strlen($str); $i )
{
$c = ord( $str{$ i});
$hash = (($hash <<5) $c;
}
return
}
}
/* *************** 終わり *************************/
?>
コードをコピー コードは次のとおりです:
/**
* 防御sql测试代码
CREATE TABLE IF NOT EXISTS `tb` (
`id` int(10) unsigned NOT NULL auto_increment,
`age` tinyint(3) unsigned NOT NULL,
`name` char(100) NOT NULL、
`note` テキスト NOT NULL、
主キー (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
**/
include_once('common.php');
var_dump(hash_num('dddd'));
if(empty( $_GET))
{
$_GET = array('年齢'=>'99','名前'=>'a'b\'c";', 'note'=>" a'b'nc#");
}
$age = (int)$_GET['age'];
$name = quote($_GET['name) ']);
$note = quote($_GET['note']);
$sql = "`tb` (`年齢`, `名前`, `note`) 値を挿入します
( $age, $name, $note)";
var_dump($sql);
?>
コードをコピー コードは次のとおりです。
$magic_quotes_gpc = get_magic_quotes_gpc(); 🎜>@extract(daddslashes($_COOKIE) );
@extract(daddslashes($_GET));
if(!$magic_quotes_gpc); >$_FILES = kiddslashes($_FILES);
}
function kiddslashes($string, $force = 0) {
if(!$GLOBALS['magic_quotes_gpc'] || $force) {
if(is_array($string )) {
foreach($string as $key => $val) {
$string[$key] = godslashes($val, $force); 🎜>}
} else {
$string =addlashes($string);
}
}
return $string;
php は SQL インジェクション コード 3 を防止します
function inject_check($sql_str) { //インジェクションを防止します $check = eregi('select|insert|update|delete|'|/*|*|../|./|union|into|load_file| outfile', $sql_str); if ($ check) { echo "不正な挿入コンテンツを入力してください! "; exit ();
} else {return $sql_str;
}
}
function checkurl() { //ソースをチェック
if (preg_replace( "/httpstutorial?://([^:/] ).*/i", "1", $_server['http_referer']) !== preg_replace("/([^:/] ).*/" , "1", $_server['http_host'])) {
header("location: http://s.jb51.net");
}
}
//Call
checkurl();
$str = $_get['url'];
inject_check($sql_str);//これはパラメータを取得するときに実行できます