Fungsi mysql escape termasuk: 1. fungsi addslashes; 3. fungsi htmlentities;
Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer Dell G3
php mysql fungsi escape Apakah itu?
fungsi escape mysql php
Apabila membangunkan alat pertanyaan sql, saya menemui POST semasa menyerahkan pernyataan sql untuk menanyakan data di latar belakang Apabila terminal menerima pernyataan sql dengan <
Tetapi tiada masalah semasa mencetak penyata yang dihantar. Fikirkanlah, ia mesti menjadi masalah pengekodan atau melarikan diri.
$sqlQuery = html_entity_decode($_POST["content"]); $sqlQuery = stripslashes($sqlQuery);[object Object]
Yang berikut terutamanya memperkenalkan fungsi melarikan diri dan fungsi keselamatan yang biasa digunakan dalam PHP Menggunakan fungsi ini boleh menapis kaedah serangan yang paling biasa, seperti suntikan SQL Rakan yang memerlukan boleh merujuknya
1. addslash addslashes melarikan diri daripada aksara khas dalam pernyataan SQL, termasuk ('), ("), (), (NUL). Fungsi ini digunakan apabila DBMS tidak mempunyai fungsi escape sendiri. , tetapi jika DBMS mempunyai fungsi escape sendiri, adalah disyorkan untuk menggunakan fungsi asal Contohnya, MySQL mempunyai fungsi mysql_real_escape_string untuk melarikan diri dari SQL Perhatikan bahawa sebelum PHP5.3, magic_quotes_gpc telah didayakan secara lalai, terutamanya dalam $GET, $POST operasi addslashes pada $COOKIE, jadi tidak perlu memanggil addslashes berulang kali pada pembolehubah ini, jika tidak, ia akan melarikan diri berganda Walau bagaimanapun, magic_quotes_gpc telah ditinggalkan dalam PHP5.3 dan telah dialih keluar sejak PHP5.4. t perlu bimbang tentang masalah ini dalam versi terkini PHP Stripslashes ialah fungsi unescape addslashes 2. htmlspecialchars htmlspecialchars melarikan beberapa aksara khas dalam HTML ke dalam HTML Entiti (format: &xxxx;), (&). '), ("), () lima aksara.
htmlspecialchars boleh digunakan untuk menapis data $GET, $POST, $COOKIE untuk menghalang XSS. Ambil perhatian bahawa fungsi htmlspecialchars hanya melepaskan aksara HTML yang dianggap mempunyai risiko keselamatan Jika anda ingin melarikan diri dari semua aksara yang boleh dilepaskan dalam HTML, sila gunakan htmlentities. htmlspecialchars_decode ialah fungsi penyahkod bagi htmlspecialchars.& (AND) => & ” (双引号) => " (当ENT_NOQUOTES没有设置的时候) ‘ (单引号) => ' (当ENT_QUOTES设置) < (小于号) => < > (大于号) => >
3. htmlentities
htmlentities melepaskan kandungan yang boleh dilepaskan dalam HTML ke dalam Entiti HTML. html_entity_decode ialah fungsi penyahkod bagi htmlentities.
4. mysql_real_escape_string
mysql_real_escape_string akan memanggil fungsi perpustakaan MySQL mysql_real_escape_string untuk melarikan diri (x00), (n), (r), (), ('), (x1a) , iaitu , tambahkan garis miring ke belakang () di hadapan untuk mengelakkan suntikan SQL. Ambil perhatian bahawa anda tidak perlu memanggil stripslash untuk melepaskan diri apabila membaca data pangkalan data, kerana backslash ini ditambah apabila pangkalan data melaksanakan SQL, dan backslash akan dialih keluar apabila data ditulis ke pangkalan data, jadi Kandungan yang ditulis ke pangkalan data ialah data asal, dan tidak akan ada garis miring ke belakang di hadapan.
5. strip_tagsstrip_tags akan menapis keluar teg NUL, HTML dan PHP.
6.stripslashes()
Fungsi ini mengalih keluar garis miring ke belakang yang ditambahkan oleh fungsi addslashes().
7. Kesimpulan Fungsi keselamatan PHP sendiri tidak dapat mengelakkan XSS sepenuhnya. Adalah disyorkan untuk menggunakan HTML Purifier
Pembelajaran yang disyorkan: "
Tutorial Video PHPAtas ialah kandungan terperinci Apakah fungsi php mysql escape?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!