


Ich suche eine ausführliche Erklärung der Anti-Injektion von mysql_real_escape_string()
mysql_real_escape_string() gilt als eine gute Alternative zu addslashes() und mysql_escape_string(), die Wide-Byte- und Injektionsprobleme lösen kann, aber die offizielle Beschreibung ist unklar:
mysql_real_escape_string – Escape-Sonderzeichen in einer Zeichenfolge, die in einer SQL-Anweisung verwendet wird, unter Berücksichtigung des aktuellen Zeichensatzes der Verbindung
Ich verstehe diesen Satz wirklich nicht, wenn man bedenkt, was der aktuelle Zeichensatz der Verbindung bedeutet. Danke!
Referenz:
http://php.net/manual/zh/function.mysql-real-escape-string.php
http://www.cnblogs.com/suihui/archive/2012/ 20.09.2694751.html
http://www.neatstudio.com/show-963-1.shtml
Zusätzliche Fragen: @佢作作作
1. Der hinzugefügte Inhalt wird nicht an MySQL übertragen. Wenn also ' or 1=1;-- s
injiziert wird, wird der hier injizierte Inhalt dann nicht schließlich zur Ausführung an MySQL übertragen? 🎜>Referenz: https://segmentfault.com/q/1010000005994443
Was bedeutet das? Den Zeichensatz der aktuellen Verbindung ändern?并考虑到连接的当前字符集
mysql_real_escape_string() gilt als eine gute Alternative zu addslashes() und mysql_escape_string(), die Wide-Byte- und Injektionsprobleme lösen kann, aber die offizielle Beschreibung ist unklar:
mysql_real_escape_string – Escape-Sonderzeichen in einer Zeichenfolge, die in einer SQL-Anweisung verwendet wird, unter Berücksichtigung des aktuellen Zeichensatzes der VerbindungIch verstehe diesen Satz wirklich nicht, wenn man bedenkt, was der aktuelle Zeichensatz der Verbindung bedeutet. Danke!
Referenz:
http://php.net/manual/zh/function.mysql-real-escape-string.php
http://www.cnblogs.com/suihui/archive/2012/ 20.09.2694751.html
http://www.neatstudio.com/show-963-1.shtml
1. Der hinzugefügte Inhalt wird nicht an MySQL übertragen. Wenn also
injiziert wird, wird der hier injizierte Inhalt dann nicht schließlich zur Ausführung an MySQL übertragen? 🎜>Referenz: https://segmentfault.com/q/1010000005994443' or 1=1;-- s
2.
并考虑到连接的当前字符集
Wenn sich beispielsweise ein Benutzer anmeldet, nehmen Sie an, dass Ihre SQL-Anweisung lautet:
$sql = "select * from user where user_name='$username' and password='$password'";
1 wenn es einen Einspritzpunkt gibt und kein Entweichen möglich ist. Übergeben Sie den Parameter username=' oder 1=1;-- s, dann lautet die SQL-Anweisung zu diesem Zeitpunkt
$sql = "select * from user where user_name='' or 1=1;-- s ' and password='$password'";
Da -- ein Kommentarzeichen ist, muss später nicht beurteilt werden, ob die Umgehung erfolgreich ist
2 Wenn ein Injektionspunkt vorhanden ist und Sonderzeichen-Escapezeichen verwendet werden. Dann lautet die SQL-Anweisung zu diesem Zeitpunkt
$sql = "select * from user where user_name='' or 1=1;-- s ' and password='$password'";
Kann nicht umgangen werden
3 Zu diesem Zeitpunkt tritt das Problem auf. Ein großartiger Hacker hat entdeckt, dass es bei der GBK-Codierung eine Wide-Byte-Injection gibt. Übergeben Sie zu diesem Zeitpunkt username=�' oder 1=1;--
Die zu diesem Zeitpunkt ausgeführte SQL-Anweisung lautet:
Erfolgreich umgangen
$sql = "select * from user where user_name='運' or 1=1;-- s ' and password='$password'";
So lösen Sie dieses Problem
mysql_real_escape_string – Escape-Sonderzeichen in Zeichenfolgen, die in SQL-Anweisungen verwendet werden, unter Berücksichtigung des aktuellen Zeichensatzes der Verbindung
Der Escape-Mechanismus der
-Anweisung durch die-Methode ändert sich mit der Änderung des Zeichensatzes der aktuellen Datenbankverbindung. Für dieselbe mysql_real_escape_string
-Anweisung sind die Escape-Ergebnisse unter verschiedenen Zeichensätzen möglicherweise nicht dieselben. SQL
SQL
Wichtig:
-Erweiterung, die seit der mysql_real_escape_string
-Version mysql
als veraltet markiert ist und nach der PHP
-Version 5.5.0
entfernt wurde. Bitte verwenden Sie die Erweiterungen PHP
oder 7
für Datenbankoperationen. Bitte versuchen Sie, mysqli
oder PDO
(besser) für den Datenbankzeichensatz zu verwenden. utf8

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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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





PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

PHP bleibt in der modernen Webentwicklung wichtig, insbesondere in Content-Management- und E-Commerce-Plattformen. 1) PHP hat ein reichhaltiges Ökosystem und eine starke Rahmenunterstützung wie Laravel und Symfony. 2) Die Leistungsoptimierung kann durch OPCACHE und NGINX erreicht werden. 3) Php8.0 führt den JIT -Compiler ein, um die Leistung zu verbessern. 4) Cloud-native Anwendungen werden über Docker und Kubernetes bereitgestellt, um die Flexibilität und Skalierbarkeit zu verbessern.

PHP ist immer noch dynamisch und nimmt immer noch eine wichtige Position im Bereich der modernen Programmierung ein. 1) Einfachheit und leistungsstarke Unterstützung von PHP machen es in der Webentwicklung weit verbreitet. 2) Seine Flexibilität und Stabilität machen es ausstehend bei der Behandlung von Webformularen, Datenbankoperationen und Dateiverarbeitung; 3) PHP entwickelt sich ständig weiter und optimiert, geeignet für Anfänger und erfahrene Entwickler.

PHP wird verwendet, um dynamische Websites zu erstellen. Zu den Kernfunktionen gehören: 1. Dynamische Inhalte generieren und Webseiten in Echtzeit generieren, indem Sie eine Verbindung mit der Datenbank herstellen; 2. Verarbeiten Sie Benutzerinteraktions- und Formulareinreichungen, überprüfen Sie Eingaben und reagieren Sie auf Operationen. 3. Verwalten Sie Sitzungen und Benutzerauthentifizierung, um eine personalisierte Erfahrung zu bieten. 4. Optimieren Sie die Leistung und befolgen Sie die Best Practices, um die Effizienz und Sicherheit der Website zu verbessern.

Apache verbindet eine Verbindung zu einer Datenbank erfordert die folgenden Schritte: Installieren Sie den Datenbanktreiber. Konfigurieren Sie die Datei web.xml, um einen Verbindungspool zu erstellen. Erstellen Sie eine JDBC -Datenquelle und geben Sie die Verbindungseinstellungen an. Verwenden Sie die JDBC -API, um über den Java -Code auf die Datenbank zuzugreifen, einschließlich Verbindungen, Erstellen von Anweisungen, Bindungsparametern, Ausführung von Abfragen oder Aktualisierungen und Verarbeitungsergebnissen.

PHP wird in E-Commerce, Content Management Systems und API-Entwicklung häufig verwendet. 1) E-Commerce: Wird für die Einkaufswagenfunktion und Zahlungsabwicklung verwendet. 2) Content -Management -System: Wird für die Erzeugung der dynamischen Inhalte und die Benutzerverwaltung verwendet. 3) API -Entwicklung: Wird für die erholsame API -Entwicklung und die API -Sicherheit verwendet. Durch Leistungsoptimierung und Best Practices werden die Effizienz und Wartbarkeit von PHP -Anwendungen verbessert.

PHP und Python haben ihre eigenen Vor- und Nachteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1.PHP eignet sich für eine schnelle Entwicklung und Wartung großer Webanwendungen. 2. Python dominiert das Gebiet der Datenwissenschaft und des maschinellen Lernens.

PHP verwendet MySQLI- und PDO-Erweiterungen, um in Datenbankvorgängen und serverseitiger Logikverarbeitung zu interagieren und die serverseitige Logik durch Funktionen wie Sitzungsverwaltung zu verarbeiten. 1) Verwenden Sie MySQLI oder PDO, um eine Verbindung zur Datenbank herzustellen und SQL -Abfragen auszuführen. 2) Behandeln Sie HTTP -Anforderungen und Benutzerstatus über Sitzungsverwaltung und andere Funktionen. 3) Verwenden Sie Transaktionen, um die Atomizität von Datenbankvorgängen sicherzustellen. 4) Verhindern Sie die SQL -Injektion, verwenden Sie Ausnahmebehandlung und Schließen von Verbindungen zum Debuggen. 5) Optimieren Sie die Leistung durch Indexierung und Cache, schreiben Sie hochlesbarer Code und führen Sie die Fehlerbehandlung durch.
