Maison Bibliothèques PHP Autres bibliothèques Bibliothè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 SQL Mécanisme de PDO pour empêcher l'injection SQL

25 Feb 2017

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 PHP Exemples de méthodes pour empêcher l'injection SQL en PHP

14 Mar 2018

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 PHP Méthode simple pour empêcher l'injection SQL en PHP

02 Jun 2018

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 SQL Compétences en implémentation PHP pour empêcher l'injection SQL

23 Jun 2023

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.

Méthodes de sécurité des données pour empêcher l'injection SQL en PHP Méthodes de sécurité des données pour empêcher l'injection SQL en PHP

24 Mar 2018

Cette fois, je vais vous présenter une méthode de sécurité des données pour empêcher l'injection SQL en PHP. Quelles sont les précautions à prendre pour la méthode de sécurité des données en PHP pour empêcher l'injection SQL ?

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

25 Apr 2017

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.

See all articles