


So verhindern Sie die Injektion von MySQL in PHP und eine Zusammenfassung der Verwendung einiger Anti-Injection-Funktionen
Bestimmen Sie einfach, ob eine Injektionsschwachstelle vorliegt und was das Prinzip ist. Der Anti-Injection-Code kommt und geht tatsächlich mit diesen Kombinationen, und dann können Sie ihn entsprechend Ihrem eigenen Programmcode anpassen. Wichtig ist, das Prinzip zu kennen, warum diese Zeichen gefiltert werden und welchen Schaden die Zeichen haben.
sql语句如:select * from phpben where id = 1
Empfohlene verwandte MySQL-Video-Tutorials: „MySQL-Tutorial “
1.MySQL-Injection-Anweisung
(1) Kein Benutzer erforderlicher Name und Passwort
//正常语句 $sql ="select * from phpben where user_name='admin' and pwd ='123'"; //在用户名框输入'or'='or'或 'or 1='1 然后sql如下 $sql ="select * from phpben where user_name=' 'or'='or'' and pwd ='' "; $sql ="select * from phpben where user_name=' 'or 1='1' and pwd ='' ";
(2) Nutzen Sie einen Benutzer, ohne das Passwort einzugeben.
//正常语句 $sql ="select * from phpben where user_name='$username' and pwd ='$pwd'"; //利用的用户名是benwin 则用户名框输入benwin'# 密码有无都可,则$sql变成 $sql ="select * from phpben where user_name=' benwin'#' and pwd ='$pwd'";
Dies liegt daran, dass eine der Anmerkungen in MySQL „#“ ist. Das # in der obigen Anweisung hat den folgenden Inhalt mit Anmerkungen versehen, sodass das Passwort leer gelassen oder beliebig eingegeben werden kann. Einige Leute im Internet sagten, dass „/*“ zum Annotieren verwendet wird. Der Autor möchte erwähnen, dass MySQL einen Fehler meldet, wenn die Annotation nur mit „*/“ beendet wird „/**/" kann nicht notiert werden, aber es ist schwierig hinzuzufügen "*/“ Um die Notiz zu beenden, gibt es auch „-“, das auch in MySQL notiert werden kann, aber bitte beachten Sie, dass nach „-“ mindestens ein Leerzeichen steht, nämlich „-“. Natürlich muss der Anti-Injection-Code alle drei Dinge berücksichtigen. Im Anti-Injection-Code wird „-“ nicht berücksichtigt.
(3) Erraten Sie das Passwort eines Benutzers
//正常语句 $sql ="select * from phpben.com where user_name='$username' and pwd ='$pwd'"; //在密码输入框中输入“benwin' and left(pwd,1)='p'#”,则$sql是 $sql ="select * from phpben.com where user_name=' benwin' and left(pwd,1)='p'#' and pwd ='$pwd'";
(4)Erhöhen Sie die Berechtigungen beim Einfügen von Daten
//正常语句,等级为1 $sql = "insert into phpben.com (`user_name`,`pwd`,`level`) values(‘benwin','iampwd',1) "; //通过修改密码字符串把语句变成 $sql = "insert into phpben.com (`user_name`,`pwd`,`level`) values(‘benwin','iampwd',5)#',1) "; $sql = "insert into phpben.com (`user_name`,`pwd`,`level`) values(‘benwin','iampwd',5)-- ',1) ";这样就把一个权限为1的用户提权到等级5
(5) Schädliches Update und löschen
//正常语句 $sql = "update phpben set `user_name` = ‘benwin' where id =1"; //注入后,恶意代码是“1 or id>0” $sql = "update phpben set `user_name` = ‘benwin' where id =1 or id>0"; //正常语句 $sql = "update phpben set `user_name` ='benwin' where id=1"; //注入后 $sql = "update phpben set `user_name` ='benwin' where id>0#' where id=1"; $sql = "update phpben set `user_name` ='benwin' where id>0-- ' where id=1";
(6) Injektion von erratenen Tabelleninformationen SQL
//正常语句 $sql ="select * from phpben1 where`user_name`='benwin'"; //猜表名,运行正常则说明存在phpben2表 $sql ="select * from phpben1 where`user_name`='benwin' and (select count(*) from phpben2 )>0#' "; //猜表字段,运行正常则说明phpben2表中有字段colum1 $sql ="select * from phpben1 where`user_name`='benwin' and (select count(colum1) from phpben2 )>0#'"; //猜字段值 $sql ="select * from phpben1 where`user_name`='benwin' and left(pwd,1)='p'#''";
2. Einige Anti-Injection-Funktionen und Hinweise.
(1)fügt Schrägstriche und Stripslashes hinzu.
Addslashes fügen Schrägstriche „'“, „““, „\“, „NULL“ zu diesen „‘“, „““, „“, „NULL“ hinzu, Stripslashes sind das Gegenteil, was bezahlt werden soll Beachten Sie hier, ob magic_quotes_gpc=ON in php.ini aktiviert ist und Addslashes verwendet werden. Wenn Sie es verwenden, müssen Sie also zuerst get_magic_quotes_gpc()
(2)mysql_escape_string() und mysql_ real _escape_string()
<🎜 überprüfen >mysql_real_escape_string Muss verwendet werden unter (PHP 4 >= 4.3.0, PHP 5). Andernfalls können Sie nur die Zeichen mysql_escape_string
if (PHP_VERSION >= '4.3') { $string = mysql_real_escape_string($string); }else { $string = mysql_escape_string($string ); }
str_replace() und perg_replace() zu ersetzen. Der Grund, warum diese Funktionen hier auch erwähnt werden, liegt darin, dass diese Funktionen kann zum Filtern oder Ersetzen einiger sensibler, tödlicher Zeichen verwendet werden.
Das obige ist der detaillierte Inhalt vonSo verhindern Sie die Injektion von MySQL in PHP und eine Zusammenfassung der Verwendung einiger Anti-Injection-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die Zukunft von PHP wird erreicht, indem sich an neue Technologietrends angepasst und innovative Funktionen eingeführt werden: 1) Anpassung an Cloud Computing, Containerisierung und Microservice -Architekturen, Unterstützung von Docker und Kubernetes; 2) Einführung von JIT -Compilern und Aufzählungsarten zur Verbesserung der Leistung und der Datenverarbeitungseffizienz; 3) die Leistung kontinuierlich optimieren und Best Practices fördern.

PHP und Python haben jeweils ihre eigenen Vorteile, und die Wahl sollte auf Projektanforderungen beruhen. 1.PHP eignet sich für die Webentwicklung mit einfacher Syntax und hoher Ausführungseffizienz. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit präziser Syntax und reichhaltigen Bibliotheken.

MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

PHP stirbt nicht, sondern sich ständig anpasst und weiterentwickelt. 1) PHP hat seit 1994 mehreren Versionen für die Version unterzogen, um sich an neue Technologietrends anzupassen. 2) Es wird derzeit in E-Commerce, Content-Management-Systemen und anderen Bereichen häufig verwendet. 3) PHP8 führt den JIT -Compiler und andere Funktionen ein, um die Leistung und Modernisierung zu verbessern. 4) Verwenden Sie Opcache und befolgen Sie die PSR-12-Standards, um die Leistung und die Codequalität zu optimieren.

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

Wie verbinde ich mit PhpMyAdmin mit MySQL? Die URL zum Zugriff auf phpmyadmin ist normalerweise http: // localhost/phpmyadmin oder http: // [Ihre Server -IP -Adresse]/Phpmyadmin. Geben Sie Ihren MySQL -Benutzernamen und Ihr Passwort ein. Wählen Sie die Datenbank aus, mit der Sie eine Verbindung herstellen möchten. Klicken Sie auf die Schaltfläche "Verbindung", um eine Verbindung herzustellen.
