suchen
HeimPHP-FrameworkLaravelEine kurze Analyse der neuesten SQL-Injection-Schwachstelle im PHP-Framework Laravel

Laravel, das bekannte PHP-Entwicklungsframework, hat zuvor im offiziellen Blog über eine hochriskante SQL-Injection-Sicherheitslücke berichtet.

Eine kurze Analyse der neuesten SQL-Injection-Schwachstelle im PHP-Framework Laravel

Zuallererst gehört diese Schwachstelle zur unregelmäßigen Codierung der Website. Der Beamte gab einen Hinweis:

Eine kurze Analyse der neuesten SQL-Injection-Schwachstelle im PHP-Framework Laravel

Aber der Beamte hat es trotzdem getan. Es wurde gepatcht und kann durch ein Upgrade auf die neueste Version V5.8.7 behoben werden.

Suchen wir zunächst hier:

Illuminate\Validation\Rule

Die offiziell empfohlene Schreibmethode ist:

Rule::unique('users')->ignore($id),

Wenn die Website-Codierung den Wert von $id nicht im Voraus verarbeitet, kann der Benutzer dies tun Übergeben Sie es direkt. Die Übergabe schädlicher Daten an die Ignorierfunktion führt zu einer SQL-Injection.

Folgen wir der Funktion:

\Illuminate\Validation\Rules\Unique.php class Unique {
... public function ignore($id, $idColumn = null) { if ($id instanceof Model) { return $this->ignoreModel($id, $idColumn);
        } $this->ignore = $id; $this->idColumn = $idColumn ?? 'id'; return $this;
    }

Hier betrachten wir das Schreiben von $id nicht als Instanz. Wenn $id vom Benutzer steuerbar ist, kann $idColumn direkt als leer geschrieben werden zugewiesen Die Situation ist wie folgt:

$this->ignore = $id; $this->idColumn = 'id';

Wenn der Website-Code so aufgebaut ist, ist der vom Hacker eingegebene Wert kontrollierbar:

$id = $request->input('id');

Schließlich kommen wir hierher:

Illuminate\Validation\Rules\Unique.php public function __toString() {
        ...
        ...
    }

Wir werfen einen Blick auf die Schlüsselcodeänderungen:

Illuminate\Validation\Rules\Unique.php
V5.8.7【最新版】 public function __toString() { $this->ignore ? '"'.addslashes($this->ignore).'"' : 'NULL',
    } 
Illuminate\Validation\Rules\Unique.php
V5.8.4 public function __toString() { $this->ignore ? '"'.$this->ignore.'"' : 'NULL',
    }

Der neueste Code hier ist v5.8.7, der direkt $this->ignore zu addslashes gibt. Hier gab es vorher keinen Schutz.

Interessant ist, dass der Autor die Unterschiede verglichen hat, wobei der Beamte auch versucht hat, andere zitierte Orte herauszufiltern. Schließlich wurde bei __toString eine einheitliche Filterung durchgeführt.

Abschließend wird der folgende Code in DatabaseRule für den nachfolgenden SQL-Regelabgleich eingegeben.

Illuminate\Validation\Rules\DatabaseRule.php

Danach gab es keine weitere Verarbeitung und dann wurde eine SQL-Injection gebildet.

Weitere technische Artikel zu Laravel finden Sie in der Spalte Einführungs-Tutorial zum Laravel-Framework, um mehr darüber zu erfahren!

Das obige ist der detaillierte Inhalt vonEine kurze Analyse der neuesten SQL-Injection-Schwachstelle im PHP-Framework Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:FreeBuf. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Laravel -Frame -Fähigkeiten teilenLaravel -Frame -Fähigkeiten teilenApr 18, 2025 pm 01:12 PM

In dieser Zeit des kontinuierlichen technologischen Fortschritts ist das Mastering Advanced Frameworks für moderne Programmierer von entscheidender Bedeutung. Dieser Artikel hilft Ihnen dabei, Ihre Entwicklungsfähigkeiten zu verbessern, indem Sie wenig bekannte Techniken im Laravel-Framework teilen. Dieser Artikel wird für seine elegante Syntax und eine breite Palette von Funktionen bekannt und werden in seinen leistungsstarken Funktionen eingraben und praktische Tipps und Tricks bieten, damit Sie effiziente und pflegende Webanwendungen erstellen können.

Der Unterschied zwischen Laravel und ThinkPhpDer Unterschied zwischen Laravel und ThinkPhpApr 18, 2025 pm 01:09 PM

Laravel und ThinkPhp sind beide populäre PHP -Frameworks und haben ihre eigenen Vor- und Nachteile in der Entwicklung. In diesem Artikel wird die beiden Tiefe verglichen und ihre Architektur, Funktionen und Leistungsunterschiede hervorgehoben, um Entwicklern zu helfen, fundierte Entscheidungen auf der Grundlage ihrer spezifischen Projektanforderungen zu treffen.

Laravel -BenutzeranmeldungsfunktionslisteLaravel -BenutzeranmeldungsfunktionslisteApr 18, 2025 pm 01:06 PM

Das Erstellen von Benutzeranmeldungsfunktionen in Laravel ist eine entscheidende Aufgabe. Dieser Artikel bietet einen umfassenden Überblick, der jeden kritischen Schritt von der Registrierung der Benutzer bis zur Anmeldung überprüft. Wir werden in die Leistung der integrierten Überprüfungsfunktionen von Laravel eintauchen und Sie durch das Anpassen und Erweitern des Anmeldesvorgangs auf den spezifischen Anforderungen führen. Wenn Sie diese Schritt-für-Schritt-Anweisungen befolgen, können Sie ein sicheres und zuverlässiges Anmeldesystem erstellen, das Benutzern Ihrer Laravel-Anwendung ein nahtloses Zugriffserlebnis bietet.

Welche Versionen von Laravel gibt es? So wählen Sie die Version von Laravel für Anfänger ausWelche Versionen von Laravel gibt es? So wählen Sie die Version von Laravel für Anfänger ausApr 18, 2025 pm 01:03 PM

In dem LaRavel Framework -Versionsauswahlhandbuch für Anfänger taucht dieser Artikel in die Versionsunterschiede von Laravel ein, um Anfänger bei der Entscheidung über fundierte Entscheidungen zwischen vielen Versionen zu unterstützen. Wir werden uns auf die wichtigsten Funktionen jeder Version konzentrieren, ihre Vor- und Nachteile vergleichen und nützliche Ratschläge geben, um Anfängern zu helfen, die am besten geeignete Version von Laravel auf der Grundlage ihrer Fähigkeiten und der Projektanforderungen auszuwählen. Für Anfänger ist die Auswahl einer geeigneten Version von Laravel von entscheidender Bedeutung, da sie ihre Lernkurve und ihre allgemeine Entwicklungserfahrung erheblich beeinflussen kann.

Wie sehe ich die Versionsnummer von Laravel an? So sehen Sie die Versionsnummer von LaravelWie sehe ich die Versionsnummer von Laravel an? So sehen Sie die Versionsnummer von LaravelApr 18, 2025 pm 01:00 PM

Das Laravel-Framework verfügt über integrierte Methoden, um die Versionsnummer einfach zu sehen, um die verschiedenen Anforderungen der Entwickler zu erfüllen. In diesem Artikel werden diese Methoden untersucht, einschließlich der Verwendung des Befehlszeilen -Tools des Composers, der Zugriff auf .Env -Dateien oder das Erhalten von Versionsinformationen über PHP -Code. Diese Methoden sind für die Aufrechterhaltung und Verwaltung der Versionierung von Laravel -Anwendungen von wesentlicher Bedeutung.

Die neueste Methode zur Verwendung von PHP -Framework LaravelDie neueste Methode zur Verwendung von PHP -Framework LaravelApr 18, 2025 pm 12:57 PM

Laravel ist ein beliebtes PHP-basierter Webanwendungs-Framework, das bei den Entwicklern für seine elegante Syntax und leistungsstarke Funktionen beliebt ist. Die neueste Version führt viele Verbesserungen und neue Funktionen ein, die die Entwicklungserfahrung und die Anwendungsleistung verbessern sollen. Dieser Artikel wird in den neuesten Ansatz von Laravel eingehen und sich darauf konzentrieren, wie diese Updates nutzen können, um leistungsstärkere und effizientere Webanwendungen zu erstellen.

Laravel Framework InstallationsmethodeLaravel Framework InstallationsmethodeApr 18, 2025 pm 12:54 PM

Artikelzusammenfassung: Dieser Artikel enthält detaillierte Schritt-für-Schritt-Anweisungen, um die Leser zu leiten, wie das Laravel-Framework einfach installiert werden kann. Laravel ist ein leistungsstarkes PHP -Framework, das den Entwicklungsprozess von Webanwendungen beschleunigt. Dieses Tutorial deckt den Installationsprozess von den Systemanforderungen bis zur Konfiguration von Datenbanken und das Einrichten von Routing ab. Durch die Ausführung dieser Schritte können die Leser schnell und effizient eine solide Grundlage für ihr Laravel -Projekt legen.

Wie man laravel lernt wie man laravel kostenlos lerntWie man laravel lernt wie man laravel kostenlos lerntApr 18, 2025 pm 12:51 PM

Möchten Sie das Laravel -Rahmen lernen, aber unter keinen Ressourcen oder dem wirtschaftlichen Druck leiden? Dieser Artikel bietet Ihnen ein kostenloses Lernen von Laravel und lehrt Sie, wie Sie Ressourcen wie Online -Plattformen, Dokumente und Community -Foren verwenden, um eine solide Grundlage für Ihre PHP -Entwicklungsreise zu schaffen.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor