recherche
MaisonBibliothèques PHPAutres bibliothèquesBibliothèque de classes PHP pour empêcher l'injection SQL
Bibliothèque de classes PHP pour empêcher l'injection SQL
<?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('您提交的参数非法,系统已记录您的本次操作!','',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


Clause de non-responsabilité

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

Mécanisme de PDO pour empêcher l'injection SQLMécanisme de PDO pour empêcher l'injection SQL

25Feb2017

Le code ci-dessus peut empêcher l'injection SQL. Pourquoi? Lorsque prepare() est appelé, l'instruction de requête a été envoyée au serveur de base de données. À ce stade, seul l'espace réservé ? est envoyé et aucune donnée soumise par l'utilisateur n'est envoyée lorsque execute() est appelée. l'utilisateur sera envoyé vers la base de données, ils sont transmis séparément, les deux sont indépendants et l'attaquant SQL n'a aucune chance.

Exemples de méthodes pour empêcher l'injection SQL en PHPExemples de méthodes pour empêcher l'injection SQL en PHP

14Mar2018

Cet article présente principalement la méthode simple pour empêcher l'injection SQL en PHP. Il analyse les techniques de fonctionnement courantes et les précautions en PHP pour empêcher l'injection SQL sous forme d'exemples. Le code est entièrement commenté pour une compréhension facile. Les amis dans le besoin peuvent s'y référer. .

Méthode simple pour empêcher l'injection SQL en PHPMéthode simple pour empêcher l'injection SQL en PHP

02Jun2018

Cet article présente principalement la méthode simple pour empêcher l'injection SQL en PHP. Il analyse les techniques de fonctionnement courantes et les précautions en PHP pour empêcher l'injection SQL sous forme d'exemples. Le code est entièrement commenté pour une compréhension facile. Les amis dans le besoin peuvent s'y référer. .

Compétences en implémentation PHP pour empêcher l'injection SQLCompétences en implémentation PHP pour empêcher l'injection SQL

23Jun2023

L'injection SQL est une méthode d'attaque courante qui contourne la vérification de sécurité d'une application en injectant une entrée malveillante dans la requête SQL d'un attaquant. Ce type d'attaque est couramment observé dans les applications Web, où PHP est un langage de programmation largement utilisé. En PHP, les programmeurs d'applications peuvent utiliser les techniques suivantes pour empêcher l'injection SQL. Utilisation des instructions préparées PHP fournit une technologie appelée instructions préparées, qui constitue un moyen sûr d'empêcher l'injection SQL. Une instruction préparée est une méthode permettant de convertir les mots de requête en requête SQL avant de l'exécuter.

Analyse d'instance de méthode ASP.NET pour empêcher l'injection SQLAnalyse d'instance de méthode ASP.NET pour empêcher l'injection SQL

25Apr2017

Cet article présente principalement la méthode de prévention de l'injection SQL dans ASP.NET et analyse les compétences opérationnelles pertinentes d'asp.net basées sur le filtrage de chaînes pour empêcher l'injection SQL sur la base d'exemples spécifiques. Les amis dans le besoin peuvent se référer à ce qui suit.

Classe de filtre ASP.NET SqlFilter pour empêcher l'injection SQLClasse de filtre ASP.NET SqlFilter pour empêcher l'injection SQL

21Jan2017

Cet article partage une classe de filtrage SqlFilter qui empêche l'injection SQL, ce qui peut empêcher l'injection via POST, GET et Cookies.

See all articles