<?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); } }
Diese Klassenbibliothek erstellt zunächst die Funktionsparameter, prüft und schreibt dann das Protokoll und überprüft schließlich das SQL-Injection-Protokoll. Es ist eine sehr nützliche PHP-Klassenbibliothek, um SQL-Injection zu verhindern
Alle Ressourcen auf dieser Website werden von Internetnutzern bereitgestellt oder von großen Download-Sites nachgedruckt. Bitte überprüfen Sie selbst die Integrität der Software! Alle Ressourcen auf dieser Website dienen nur als Referenz zum Lernen. Bitte nutzen Sie diese nicht für kommerzielle Zwecke. Andernfalls sind Sie für alle Folgen verantwortlich! Wenn ein Verstoß vorliegt, kontaktieren Sie uns bitte, um ihn zu löschen. Kontaktinformationen: admin@php.cn
Verwandter Artikel

26Oct2024
Vorbereitete PDO-Anweisungen: Verständnis ihrer Sicherheitswirksamkeit. Vorbereitete PDO-Anweisungen werden weithin als wirksame Verteidigung gegen SQL gefeiert.

02Dec2024
Der Sicherheitsvorteil vorbereiteter parametrisierter Abfragen Im Bereich der Datenbankprogrammierung ist der Schutz der Datenintegrität von größter Bedeutung. Eine gemeinsame...

19Nov2024
So verhindern Sie Code-Injection-Angriffe in PHP: Eine umfassende Anleitung. PHP bietet eine breite Palette von Funktionen zur Bereinigung von Benutzern ...

04Dec2024
Schutz vor SQL-Injection: Die Bedeutung vorbereiteter Anweisungen Im Bereich der Datenbankabfragen betont der vorherrschende Vorschlag die...

21Oct2024
Den Unterschied verstehen: mysql_real_escape_string() vs. addslashes()Während sowohl mysql_real_escape_string() als auch addslashes() zum Escapezeichen von Sonderzeichen in Strings verwendet werden, um SQL-Injection-Angriffe zu verhindern, gibt es wesentliche Unterschiede zwischen t

18Jan2025
Schutz vor SQL-Injection: Einfache Anführungszeichen und umgebende Benutzereingaben umgehen Im Bereich der SQL-Sicherheit ist es von entscheidender Bedeutung, sich vor ... zu schützen.


Hot Tools

PHP-Bibliothek für Abhängigkeitsinjektionscontainer
PHP-Bibliothek für Abhängigkeitsinjektionscontainer

Eine Sammlung von 50 hervorragenden klassischen PHP-Algorithmen
Klassischer PHP-Algorithmus, lernen Sie hervorragende Ideen und erweitern Sie Ihr Denken

Kleine PHP-Bibliothek zur Optimierung von Bildern
Kleine PHP-Bibliothek zur Optimierung von Bildern
