


<?php class sqlsafe { private $getfilter = "'|(and|or)\b.+?(>|<|=|in|like)|\/\*.+?\*\/|<\s*script\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)"; private $postfilter = "\b(and|or)\b.{1,6}?(=|>|<|\bin\b|\blike\b)|\/\*.+?\*\/|<\s*script\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)"; private $cookiefilter = "\b(and|or)\b.{1,6}?(=|>|<|\bin\b|\blike\b)|\/\*.+?\*\/|<\s*script\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)"; public function __construct() { foreach($_GET as $key=>$value){$this->stopattack($key,$value,$this->getfilter);} foreach($_POST as $key=>$value){$this->stopattack($key,$value,$this->postfilter);} foreach($_COOKIE as $key=>$value){$this->stopattack($key,$value,$this->cookiefilter);} } public function stopattack($StrFiltKey, $StrFiltValue, $ArrFiltReq){ if(is_array($StrFiltValue))$StrFiltValue = implode($StrFiltValue); if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue) == 1){ $this->writeslog($_SERVER["REMOTE_ADDR"]." ".strftime("%Y-%m-%d %H:%M:%S")." ".$_SERVER["PHP_SELF"]." ".$_SERVER["REQUEST_METHOD"]." ".$StrFiltKey." ".$StrFiltValue); showmsg('您提交的參數(shù)非法,系統(tǒng)已記錄您的本次操作!','',0,1); } } public function writeslog($log){ $log_path = CACHE_PATH.'logs'.DIRECTORY_SEPARATOR.'sql_log.txt'; $ts = fopen($log_path,"a+"); fputs($ts,$log."\r\n"); fclose($ts); } }
Cette bibliothèque de classes construit d'abord les paramètres de la fonction, puis vérifie et écrit le journal, et enfin vérifie le journal d'injection SQL. C'est une bibliothèque de classes PHP très utile pour empêcher l'injection SQL
Toutes les ressources de ce site proviennent d'internautes ou sont réimprimées par les principaux sites de téléchargement. Veuillez vérifier vous-même l'intégrité du logiciel?! Toutes les ressources de ce site sont uniquement à titre de référence d'apprentissage. Merci de ne pas les utiliser à des fins commerciales. Sinon, vous serez responsable de toutes les conséquences ! En cas d'infraction, veuillez nous contacter pour la supprimer. Coordonnées : admin@php.cn
Article connexe

22 Jul 2025
La méthode de base pour empêcher l'injection SQL consiste à utiliser des instructions de prétraitement et des requêtes paramétrées. 1. Utilisez des instructions de prétraitement PDO pour lier l'entrée de l'utilisateur via des marques de questions ou des paramètres nommés pour vous assurer que l'entrée n'est pas exécutée sous forme de code SQL; 2. Utilisez la méthode de prétraitement et de Bind_param de Mysqli pour spécifier clairement le type de paramètre pour empêcher l'entrée malveillante de falsifier la structure SQL; 3. évitez les entrées d'échappement manuellement, telles que MySqli_Real_escape_String, car elle est sujette à des erreurs et à une sécurité insuffisante; 4. Utilisez des fonctions de filtre intégrées PHP pour vérifier les entrées, telles que Filter_Input et Intval, pour assurer la légalité des données d'entrée. Ces méthodes peuvent améliorer efficacement la sécurité des applications PHP et empêcher SQL

31 Dec 2024
Qu'est-ce que l'échappement de cha?ne et pourquoi est-ce crucial ? L'échappement de cha?ne est une technique utilisée pour clarifier l'utilisation prévue des guillemets et autres...

20 Dec 2024
Comment créer des requêtes de base de données sécurisées avec l'extension MySQLL'extension MySQL offre une approche rudimentaire mais fonctionnelle des interactions avec les bases de données...

23 Jan 2025
Liaison des noms de table dans les instructions préparéesQuestion?:Est-il possible de paramétrer le nom de la table dans une instruction SQL préparée, ce qui gêne SQL...

07 Dec 2024
PHP MySQLI?: Prévenir l'injection SQLLors du développement d'applications Web, la protection contre les attaques par injection SQL est cruciale. Utiliser le...

01 Nov 2024
Requêtes paramétrées avec connexion MySQL en PHPAssurer la sécurité de vos applications de base de données est primordiale, et les requêtes paramétrées sont...


Outils chauds Tags

Outils chauds

Bibliothèque PHP pour les conteneurs d'injection de dépendances
Bibliothèque PHP pour les conteneurs d'injection de dépendances

Une collection de 50 excellents algorithmes PHP classiques
Algorithme PHP classique, apprenez d'excellentes idées et élargissez votre réflexion

Petite bibliothèque PHP pour optimiser les images
Petite bibliothèque PHP pour optimiser les images
