Heim >Datenbank >MySQL-Tutorial >Reichen „mysql_real_escape_string()' und „mysql_escape_string()' aus, um meine Webanwendung vor SQL-Injection zu schützen?
Sind mysql_real_escape_string() und mysql_escape_string() für die Anwendungssicherheit ausreichend?
Diese Funktionen können zwar den Datenschutz verbessern, reichen aber nicht aus Schützen Sie Webanwendungen vollständig vor allen Sicherheitsrisiken.
SQL Injection
LIKE SQL Attacks
Charset-Exploits
LIMIT Exploits
Proaktive Verteidigung: Vorbereitete Aussagen
Codebeispiel
Hier ist ein Vergleich von mysql_escape_string() und vorbereiteten Anweisungen in PHP:
// Escaping Method $sql = sprintf("SELECT url FROM GrabbedURLs WHERE %s LIKE '%s%%' LIMIT %s", mysql_real_escape_string($argv[1]), mysql_real_escape_string($argv[2]), mysql_real_escape_string($argv[3])); // Prepared Statement $statement = $pdo->prepare('SELECT url FROM GrabbedURLs ' . 'WHERE ' . $column . '=? ' . 'LIMIT ' . intval($limit)); $statement->execute(array($value));
Vorbereitete Anweisungen sind zwar etwas länger in der Implementierung, bieten aber überlegenen Schutz vor böswilligen SQL-Abfragen und reduzieren die Codekomplexität.
Das obige ist der detaillierte Inhalt vonReichen „mysql_real_escape_string()' und „mysql_escape_string()' aus, um meine Webanwendung vor SQL-Injection zu schützen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!