Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk mematikan Petikan Ajaib dalam php? Pengenalan kaedah

Bagaimana untuk mematikan Petikan Ajaib dalam php? Pengenalan kaedah

PHPz
PHPzasal
2023-03-24 17:09:451458semak imbas

Jika anda seorang pembangun PHP, anda mungkin menghadapi masalah yang dipanggil "Petikan Ajaib", yang mungkin menyebabkan kod anda tidak berfungsi dengan betul dalam persekitaran pengeluaran. Petikan Ajaib ialah mekanisme keselamatan yang direka untuk melindungi aplikasi web daripada serangan suntikan SQL. Walau bagaimanapun, dari semasa ke semasa, Petikan Ajaib telah terbukti tidak selamat dan telah dibatalkan.

Dalam artikel ini, saya akan menunjukkan kepada anda cara mematikan Petikan Ajaib dan memastikan kod PHP anda selaras dengan keselamatan terkini dan amalan terbaik.

Apakah Petikan Ajaib

Dalam versi awal PHP, pembangun mendapati bahawa mereka perlu mengekstrak data daripada borang dan memasukkannya ke dalam pangkalan data. Dalam proses itu, mereka mendapati bahawa terdapat masalah keselamatan sebenar yang dikenali sebagai "suntikan SQL." Suntikan SQL ialah kaedah serangan yang sangat popular di mana penyerang menyerahkan kod berniat jahat untuk menjejaskan aplikasi web. Untuk melindungi pembangun daripada serangan suntikan SQL, pasukan pembangunan PHP memperkenalkan Petikan Ajaib.

Petikan Ajaib ialah ciri yang digunakan secara automatik yang secara automatik melepaskan petikan atau aksara khas lain dalam data input untuk melindungi pembangun daripada serangan suntikan SQL. Contohnya, jika pengguna menaip "O'Reilly" ke dalam kotak teks, Petikan Ajaib akan melepaskannya sebagai "O'Reilly."

Sambil melakukan ini boleh melindungi aplikasi web anda, ia juga boleh menimbulkan masalah dalam situasi tertentu. Petikan Ajaib boleh mengubah suai data anda, yang mungkin merosakkan aplikasi anda. Contohnya, jika aplikasi anda menjangkakan untuk menyimpan data dengan petikan dalam pangkalan data, Petikan Ajaib akan menghalang anda daripada berbuat demikian. Oleh itu, mematikan Petikan Ajaib mungkin merupakan pilihan yang lebih baik.

Matikan Petikan Ajaib

Jika anda memutuskan untuk mematikan Petikan Ajaib, apa yang perlu anda lakukan ialah menetapkan pilihan magic_quotes_gpc dalam fail php.ini anda. magic_quotes_gpc ialah suis yang mengawal kelakuan Petikan Ajaib. Jika ia ditetapkan kepada "Hidup", PHP akan secara automatik melaksanakan operasi melarikan diri aksara. Jika ia ditetapkan kepada "Mati", maka PHP tidak akan melarikan diri secara automatik daripada aksara ini. Begini caranya untuk menetapkan pilihan magic_quotes_gpc dalam fail php.ini:

magic_quotes_gpc = Off

Selepas anda membuat perubahan ini, anda perlu memulakan semula pelayan web anda. Anda boleh menggunakan fungsi phpinfo() dalam kod PHP anda untuk menyemak sama ada Petikan Ajaib berjaya dimatikan. Jika berjaya ditutup, anda akan melihat output berikut:

magic_quotes_gpc = Off

Alternatif

Walaupun mematikan Petikan Ajaib akan memastikan kod PHP anda mematuhi keselamatan terkini dan terbaik amalan Amalan terbaik, tetapi dalam beberapa kes anda mungkin perlu mencari alternatif. Contohnya, jika aplikasi anda perlu melindungi data daripada serangan suntikan SQL, anda boleh menggunakan pertanyaan mengikat data atau berparameter. Pengikatan data ialah kaedah mengikat nilai data kepada pemegang tempat dalam pernyataan pertanyaan SQL, manakala pertanyaan berparameter ialah kaedah menggunakan pernyataan dan parameter pertanyaan SQL yang dipratentukan untuk melaksanakan operasi pertanyaan.

Kesimpulan

Petikan Ajaib ialah ciri yang melindungi aplikasi web daripada serangan suntikan SQL, tetapi ia telah terbukti tidak selamat dan telah dialih keluar. Jika anda memutuskan untuk mematikan Petikan Ajaib, anda perlu menetapkan pilihan magic_quotes_gpc dalam fail php.ini. Anda juga boleh mencari alternatif, seperti pengikatan data dan pertanyaan berparameter, untuk melindungi aplikasi web anda. Walau apa pun cara yang anda pilih, pastikan kod PHP anda mematuhi keselamatan terkini dan amalan terbaik.

Atas ialah kandungan terperinci Bagaimana untuk mematikan Petikan Ajaib dalam php? Pengenalan kaedah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn