Heim Backend-Entwicklung PHP-Tutorial Reichen mysql_real_escape_string() und mysql_escape_string() für die App-Sicherheit aus?

Reichen mysql_real_escape_string() und mysql_escape_string() für die App-Sicherheit aus?

Nov 02, 2024 am 03:27 AM

Are mysql_real_escape_string() and mysql_escape_string() Sufficient for App Security?

Sind 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 kopieren

    Diese 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 kopieren

    Diese 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())) { }
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium) 11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium) Mar 03, 2025 am 10:49 AM

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

Arbeiten mit Flash -Sitzungsdaten in Laravel Arbeiten mit Flash -Sitzungsdaten in Laravel Mar 12, 2025 pm 05:08 PM

Arbeiten mit Flash -Sitzungsdaten in Laravel

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Mar 12, 2025 pm 05:09 PM

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests

Einführung in die Instagram -API Einführung in die Instagram -API Mar 02, 2025 am 09:32 AM

Einführung in die Instagram -API

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren Mar 04, 2025 am 09:33 AM

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 Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Mar 14, 2025 am 11:42 AM

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

12 Beste PHP -Chat -Skripte auf Codecanyon 12 Beste PHP -Chat -Skripte auf Codecanyon Mar 13, 2025 pm 12:08 PM

12 Beste PHP -Chat -Skripte auf Codecanyon

Ankündigung von 2025 PHP Situation Survey Ankündigung von 2025 PHP Situation Survey Mar 03, 2025 pm 04:20 PM

Ankündigung von 2025 PHP Situation Survey

See all articles