<?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
23 Jun 2023
SQL-Injection ist eine gängige Angriffsmethode, die die Sicherheitsüberprüfung einer Anwendung umgeht, indem sie böswillige Eingaben in die SQL-Abfrage eines Angreifers einspeist. Diese Art von Angriff kommt häufig bei Webanwendungen vor, bei denen PHP eine weit verbreitete Programmiersprache ist. In PHP können Anwendungsprogrammierer die folgenden Techniken verwenden, um SQL-Injection zu verhindern. Verwenden vorbereiteter Anweisungen PHP bietet eine Technologie namens vorbereitete Anweisungen, die eine sichere Möglichkeit zur Verhinderung von SQL-Injection darstellt. Eine vorbereitete Anweisung ist eine Möglichkeit, Abfragewörter vor der Ausführung in eine SQL-Abfrage umzuwandeln.
09 Jul 2023
Einführung in PHP-Programmierkenntnisse zur Verhinderung von SQL-Injection-Angriffen: SQL-Injection ist eine häufige Methode für Webanwendungsangriffe. Der Angreifer fügt schädlichen SQL-Code in die vom Benutzer eingegebenen Daten ein, um illegalen Zugriff auf die Datenbank zu erhalten oder schädliche Operationen durchzuführen. Um unsere Anwendungen vor SQL-Injection-Angriffen zu schützen, müssen wir einige Programmiertechniken anwenden, um vom Benutzer eingegebene Daten zu filtern, zu maskieren und zu validieren. In diesem Artikel werden mehrere gängige PHP-Programmiertechniken erläutert, die uns dabei helfen, SQL-Injection-Angriffe zu verhindern. Verwenden Sie vorbereitete Aussagen
29 Nov 2016
Einführung in PHP-Funktionen zur Verhinderung von SQL-Injection
13 Jun 2017
(1) mysql_real_escape_string – Escape-Sonderzeichen in der in der SQL-Anweisung verwendeten Zeichenfolge unter Berücksichtigung des aktuellen Zeichensatzes der Verbindung. Die Verwendungsmethode ist wie folgt:?123$sql= "select count(*)asctr from users wobei username=' ".mysql_real_escape_string($username)."'andpassword='". mysq...
30 Jun 2023
Java ist eine Programmiersprache, die häufig für die Entwicklung von Anwendungen auf Unternehmensebene verwendet wird. Da jedoch immer mehr Bedrohungen für die Netzwerksicherheit auftreten, ist der Schutz von Anwendungen vor böswilligen Angriffen zu einer der wichtigsten Aufgaben für Entwickler geworden. Unter anderem ist die Verhinderung von SQL-Injection-Angriffen eines der kritischsten Sicherheitsprobleme während des Entwicklungsprozesses. In diesem Artikel werden einige Tipps zur Verhinderung von SQL-Injection-Angriffen vorgestellt, um Java-Entwicklern dabei zu helfen, ihre Anwendungen besser zu schützen. Zunächst ist es wichtig zu verstehen, was ein SQL-Injection-Angriff ist. Der SQL-Injection-Angriff ist eine Exploit-Anwendung
02 May 2024
Die PHP-Funktion „protect_sql_injection()“ wird verwendet, um SQL-Injection-Angriffe zu verhindern. Sie wird durch die folgenden Schritte implementiert: Escape-Sonderzeichen. Konvertieren Sie Nicht-ASCII-Zeichen in HTML-Entitäten. Dadurch wird sichergestellt, dass vom Benutzer bereitgestellte Eingaben sicher verarbeitet werden, bevor Datenbankabfragen ausgeführt werden, wodurch die Einschleusung von bösartigem SQL-Code verhindert wird.
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