


mysql_real_escape_string() vs. addslashes(): Fungsi Melarikan Diri Yang Mana Menyediakan Perlindungan Suntikan SQL yang Lebih Baik?
Memahami Perbezaan antara mysql_real_escape_string() dan addslashes() untuk Perlindungan Injeksi SQL
Dalam membangunkan aplikasi web, mencegah serangan suntikan SQL adalah penting. Walaupun addslashes() ialah fungsi yang biasa digunakan untuk melarikan diri aksara, ia gagal dalam senario tertentu. Fungsi mysql_real_escape_string() menangani pengehadan ini secara khusus, meningkatkan perlindungan suntikan SQL.
Perbezaan Melarikan Diri Aksara
mysql_real_escape_string() melarikan diri daripada julat aksara yang lebih luas (x00, n, "r, , ' , dan x1a) berbanding addslashes() yang hanya melepaskan tiga aksara (', dan NUL) Liputan komprehensif ini memastikan bahawa aksara yang berpotensi dieksploitasi untuk suntikan SQL dilepaskan dengan betul, meminimumkan kelemahan.
SQL Injection). Kerentanan dengan addslashes()
Walaupun menggunakan addslashes(), apl web kekal terdedah kepada suntikan SQL jika ia bergantung sepenuhnya pada fungsi ini untuk melarikan diri aksara Satu senario di mana addslashes() gagal ialah apabila input hasad mengandungi petikan berganda ("). Petikan ini boleh menamatkan rentetan yang telah dipetik, membenarkan penyerang menyuntik pernyataan SQL sewenang-wenangnya.
Contohnya:
<code class="php">$username = addslashes($_POST['username']); $sql = "SELECT * FROM users WHERE username='$username'";</code>
Jika input pengguna ialah "John' OR 1='1" , addslashes() hanya akan melepaskan petikan tunggal ('), menghasilkan pernyataan SQL berikut:
<code class="sql">SELECT * FROM users WHERE username='John\' OR 1=\'1\'</code>
Petikan berganda (") tidak terlepas, membenarkan penyerang menamatkan rentetan yang disebut dan menambah Logik SQL tambahan. Akibatnya, pertanyaan akan mengembalikan semua pengguna dan bukannya John, yang berpotensi menjejaskan maklumat sensitif.
Kesimpulan
Sementara addslashes() menyediakan pelarian aksara asas untuk perlindungan suntikan SQL, ia tidak mencukupi untuk menghapuskan sepenuhnya kelemahan mysql_real_escape_string() mengatasi had ini dengan melarikan diri daripada julat aksara yang lebih luas, menangani senario di mana addslashes() gagal Dengan menggunakan mysql_real_escape_string() atau menggunakan pertanyaan berparameter sebagai alternatif yang unggul, pembangun web boleh meningkatkan dengan ketara. keselamatan aplikasi mereka terhadap serangan suntikan SQL.
Atas ialah kandungan terperinci mysql_real_escape_string() vs. addslashes(): Fungsi Melarikan Diri Yang Mana Menyediakan Perlindungan Suntikan SQL yang Lebih Baik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

11 skrip pemendek URL terbaik PHP (percuma dan premium)

Bekerja dengan Data Sesi Flash di Laravel

Bina aplikasi React dengan hujung belakang Laravel: Bahagian 2, React

Respons HTTP yang dipermudahkan dalam ujian Laravel

Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API REST

12 skrip sembang php terbaik di codecanyon

Pengumuman Penyiasatan Situasi PHP 2025
