Maison > développement back-end > tutoriel php > Code anti-injection php simple

Code anti-injection php simple

怪我咯
Libérer: 2023-03-13 18:28:01
original
4587 Les gens l'ont consulté

La soi-disant injection SQL consiste à insérer une commande SQL dans un formulaire Web pour soumettre ou saisir un nom de domaine ou une requête pour une demande de page chaîne , incitant finalement le serveur à exécuter des commandes SQL malveillantes. Plus précisément, il s'agit de la possibilité d'utiliser des applications existantes pour injecter des commandes SQL (malveillantes) dans le moteur de base de données principal en vue de leur exécution. Il peut obtenir des informations sur un site Web présentant des vulnérabilités de sécurité en saisissant des instructions SQL (malveillantes) dans un formulaire Web. que d'exécuter des instructions SQL comme prévu par le concepteur. Par exemple, de nombreux sites Web de cinéma et de télévision ont divulgué les mots de passe des membres VIP, principalement en soumettant des caractères de requête via des formulaires WEB. Ces formulaires sont particulièrement vulnérables aux attaques par injection SQL. Cet article utilise principalement deux méthodes pour empêcher l'injection en PHP. Tout d'abord, veuillez enregistrer le code suivant sous safe.php dans le répertoire racine du site Web, puis ajoutez include("/safe.php") devant chacune. Fichier PHP. ;C'est tout :

méthode du code anti-injection php 1 :

<?php 
//要过滤的非法字符 
$ArrFiltrate=array(”‘”,”;”,”union”); 
//出错后要跳转的url,不填则默认前一页 
$StrGoUrl=””; 
//是否存在数组中的值 
function FunStringExist($StrFiltrate,$ArrFiltrate){ 
foreach ($ArrFiltrate as $key=>$value){ 
if (eregi($value,$StrFiltrate)){ 
return true; 
} 
} 
return false; 
} 
//合并$_POST 和 $_GET 
if(function_exists(array_merge)){ 
$ArrPostAndGet=array_merge($HTTP_POST_VARS,$HTTP_GET_VARS); 
}else{ 
foreach($HTTP_POST_VARS as $key=>$value){ 
$ArrPostAndGet[]=$value; 
} 
foreach($HTTP_GET_VARS as $key=>$value){ 
$ArrPostAndGet[]=$value; 
} 
} 
//验证开始 
foreach($ArrPostAndGet as $key=>$value){ 
if (FunStringExist($value,$ArrFiltrate)){ 
echo “<script language=\”javascript\”>alert(\”非法字符\”);</script>”; 
if (emptyempty($StrGoUrl)){ 
echo “<script language=\”javascript\”>history.go(-1);</script>”; 
}else{ 
echo “<script language=\”javascript\”>window.location=\””.$StrGoUrl.”\”;</script>”; 
} 
exit; 
} 
} 
?>
Copier après la connexion

méthode du code anti-injection php deux :

/* 过滤所有GET过来变量 */ 
foreach ($_GET as $get_key=>$get_var) 
{ 
if (is_numeric($get_var)) { 
$get[strtolower($get_key)] = get_int($get_var); 
} else { 
$get[strtolower($get_key)] = get_str($get_var); 
} 
} 
/* 过滤所有POST过来的变量 */ 
foreach ($_POST as $post_key=>$post_var) 
{ 
if (is_numeric($post_var)) { 
$post[strtolower($post_key)] = get_int($post_var); 
} else { 
$post[strtolower($post_key)] = get_str($post_var); 
} 
} 
/* 过滤函数 */ 
//整型过滤函数 
function get_int($number) 
{ 
return intval($number); 
} 
//字符串型过滤函数 
function get_str($string) 
{ 
if (!get_magic_quotes_gpc()) { 
return addslashes($string); 
} 
return $string; 
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal