<?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); } }
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

26 Oct 2024
Vorbereitete PDO-Anweisungen: Verst?ndnis ihrer Sicherheitswirksamkeit. Vorbereitete PDO-Anweisungen werden weithin als wirksame Verteidigung gegen SQL gefeiert.

02 Dec 2024
Der Sicherheitsvorteil vorbereiteter parametrisierter Abfragen Im Bereich der Datenbankprogrammierung ist der Schutz der Datenintegrit?t von gr??ter Bedeutung. Eine gemeinsame...

08 Jul 2025
Es gibt drei wichtige Ma?nahmen, um die SQL -Injektion zu verhindern: 1. Parametrisierte Abfragen wie PDO von PHP oder Python Cursor.execute () kombiniert mit Parameter -Tupeln, um sicherzustellen, dass die Benutzereingabe immer als Daten anstelle von SQL -Code verarbeitet wird. 2. überprüfen und filtern Sie den Eingang, verwenden Sie den Whitelist -Mechanismus, um das Format zu überprüfen und die L?nge zu begrenzen, und vermeiden Sie es, auf Schwarzlisten zu stützen. 3. Vermeiden Sie die Datenbankfehlerinformationen. Die Produktionsumgebung sollte detaillierte Fehlerberichte blockieren und Fuzzy -Fehleranforderungen zurückgeben, um Angreifer daran zu hindern, sie auszunutzen.

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

08 Apr 2025
SQL Injection: T?ten Sie in der Wiege haben Sie jemals gedacht, dass scheinbar einfache Datenbankabfragen Risiken verbergen, die ausreichen, um das gesamte System zu zerst?ren? SQL Injection, dieser alte Gegner, der tief im Code lauert, wartet auf Ihre Fahrl?ssigkeit. Lassen Sie uns in diesem Artikel darüber sprechen, wie die SQL -Injektion effektiv verhindern und Ihre Anwendung unzerst?rbar gestaltet werden kann. Nachdem Sie es gelesen haben, beherrschen Sie die F?higkeiten des Schreibens sicherer Code und lernen einige leistungsstarke Tools, mit denen Sie die SQL -Injektion problemlos bew?ltigen k?nnen. Beginnen wir mit den Grundlagen. Die Essenz der SQL -Injektion ist, dass ein Angreifer b?swillig konstruierte SQL -Anweisungen verwendet, um Ihre Programmlogik zu umgehen und die Datenbank direkt zu betreiben. Stellen Sie sich eine Erkl?rung vor, die Benutzerinformationen h?tte abfragen sollen und vom Angreifer in Or1 = 1 eingefügt wurde. Was ist das Ergebnis? Alle Benutzerinformationen werden freigelegt

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


Hei?e Werkzeuge

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
