Heim PHP-Bibliotheken Andere Bibliotheken PHP-Klassenbibliothek zur Verhinderung von SQL-Injection
PHP-Klassenbibliothek zur Verhinderung von SQL-Injection
<?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


Haftungsausschluss

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

Sind vorbereitete PDO-Anweisungen die ultimative Lösung zur Verhinderung von SQL-Injection? Sind vorbereitete PDO-Anweisungen die ultimative Lösung zur Verhinderung von SQL-Injection?

26 Oct 2024

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

Warum sind vorbereitete parametrisierte Abfragen sicherer als Escape-Funktionen zur Verhinderung von SQL-Injection? Warum sind vorbereitete parametrisierte Abfragen sicherer als Escape-Funktionen zur Verhinderung von SQL-Injection?

02 Dec 2024

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

Wie wählt man die richtige Bereinigungsfunktion zur Verhinderung von Code-Injection-Angriffen in PHP aus? Wie wählt man die richtige Bereinigungsfunktion zur Verhinderung von Code-Injection-Angriffen in PHP aus?

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 ...

Codierungsspezifikationen und Werkzeugempfehlungen zur Verhinderung von SQL -Injektionsangriffen Codierungsspezifikationen und Werkzeugempfehlungen zur Verhinderung von SQL -Injektionsangriffen

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

Warum sind vorbereitete Anweisungen für die Verhinderung von SQL-Injection unerlässlich? Warum sind vorbereitete Anweisungen für die Verhinderung von SQL-Injection unerlässlich?

04 Dec 2024

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

Sind mysql_real_escape_string() und addslashes() gleichwertig bei der Verhinderung von SQL-Injection? Sind mysql_real_escape_string() und addslashes() gleichwertig bei der Verhinderung von SQL-Injection?

21 Oct 2024

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

See all articles