Rumah >pangkalan data >tutorial mysql >Adakah `mysql_real_escape_string()` dan `mysql_escape_string()` Cukup untuk Melindungi Aplikasi Web Saya Terhadap SQL Injection?
Adakah mysql_real_escape_string() dan mysql_escape_string() Mencukupi untuk Keselamatan Aplikasi?
Walaupun fungsi ini boleh meningkatkan perlindungan data, ia tidak mencukupi untuk melindungi sepenuhnya aplikasi web daripada semua keselamatan risiko.
SQL Injection
SUKA SQL Serangan
Eksploitasi Charset
Eksploitasi LIMIT
Pertahanan Proaktif: Pernyataan Disediakan
Contoh Kod
Berikut ialah perbandingan mysql_escape_string() dan pernyataan yang disediakan dalam 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));
Pernyataan yang disediakan, sementara sedikit lebih lama untuk dilaksanakan, menawarkan perlindungan unggul terhadap pertanyaan SQL yang berniat jahat dan mengurangkan kerumitan kod.
Atas ialah kandungan terperinci Adakah `mysql_real_escape_string()` dan `mysql_escape_string()` Cukup untuk Melindungi Aplikasi Web Saya Terhadap SQL Injection?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!