


Reichen mysql_real_escape_string() und mysql_escape_string() für die App-Sicherheit aus?
Nov 02, 2024 am 03:27 AMSind mysql_real_escape_string() und mysql_escape_string() sicher genug für Anwendungen?
Einführung:
Die Aufrechterhaltung der App-Sicherheit ist von entscheidender Bedeutung, und die Datenbanksicherheit spielt eine wichtige Rolle. Während mysql_real_escape_string() und mysql_escape_string() häufig zum Schutz vor SQL-Injections verwendet werden, bestehen Bedenken hinsichtlich ihrer Wirksamkeit.
Frage:
Wird mysql_real_escape_string() und mysql_escape_string() genügen für die App-Sicherheit?
Antwort:
Nein.
Schwachstellen von mysql_real_escape_string() und mysql_escape_string()
Diese Funktionen reichen aufgrund mehrerer Sicherheitslücken nicht für eine umfassende App-Sicherheit aus:
SQL-Injection:
- Trotz Schutzansprüche bleiben diese Funktionen anfällig für SQL-Injections, insbesondere in Bezug auf PHP-Variablen, die in Abfragen verwendet werden.
-
Beispiel:
$sql = "SELECT number FROM PhoneNumbers WHERE " . mysql_real_escape_string($field) . " = " . mysql_real_escape_string($value);
Nach dem Login kopierenDiese Abfrage kann sein wird durch das Einfügen schädlicher Daten ausgenutzt, was möglicherweise zu unbefugtem Datenbankzugriff führt.
LIKE-SQL-Angriffe:
- LIKE-Abfragen können durch die Verwendung kompromittiert werden Sonderzeichen wie „%“ oder „_“, um die beabsichtigten Suchkriterien zu umgehen.
-
Beispiel:
$sql = "SELECT url FROM GrabbedURLs WHERE " . mysql_real_escape_string($field) . " LIKE '%s%%' LIMIT %s";
Nach dem Login kopierenDiese Abfrage ermöglicht es einem Angreifer, alle Datensätze abzurufen, stellt Sicherheitsrisiken dar.
Charset-Exploits:
- Internet Explorer bleibt anfällig für Charset-Exploits, die es Hackern ermöglichen, beliebige SQL-Befehle einzuschleusen. einschließlich SQL-Injections.
Empfohlene Lösung: Vorbereitete Anweisungen
Um diese Schwachstellen zu beheben, besteht die empfohlene Sicherheitsmaßnahme darin, vorbereitete Anweisungen zu verwenden.
- Vorbereitete Anweisungen nutzen die inhärenten Sicherheitsmechanismen des Datenbankservers.
- Sie verhindern SQL-Injections, indem sie nur das vorgesehene SQL ausführen.
- Vorbereitete Anweisungen vereinfachen außerdem den Code und minimieren Schwachstellen.
Beispiel:
$pdo = new PDO($dsn); $column = 'url'; $value = 'http://www.stackoverflow.com/'; $limit = 1; $statement = $pdo->prepare('SELECT url FROM GrabbedURLs WHERE ' . $column . '=? LIMIT ' . $limit); $statement->execute(array($value)); while (($data = $statement->fetch())) { }
Fazit:
mysql_real_escape_string() und mysql_escape_string() bieten begrenzten Schutz vor bestimmten SQL-Injection-Angriffe. Sie reichen jedoch nicht aus, um Anwendungen vor verschiedenen anderen Schwachstellen zu schützen. Der empfohlene Ansatz besteht darin, vorbereitete Anweisungen zu verwenden, um eine umfassende App-Sicherheit zu gewährleisten.
Das obige ist der detaillierte Inhalt vonReichen mysql_real_escape_string() und mysql_escape_string() für die App-Sicherheit aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

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

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium)

Arbeiten mit Flash -Sitzungsdaten in Laravel

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs

12 Beste PHP -Chat -Skripte auf Codecanyon

Ankündigung von 2025 PHP Situation Survey
