Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Pembolehubah $_POST Saya Melarikan Diri pada Pengeluaran tetapi Bukan Secara Tempatan?

Mengapa Pembolehubah $_POST Saya Melarikan Diri pada Pengeluaran tetapi Bukan Secara Tempatan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-27 09:08:03521semak imbas

Why Are My $_POST Variables Escaped on Production but Not Locally?

Mengapa Pembolehubah POST Melarikan Diri pada Pelayan Pengeluaran

Apabila menerima data daripada permintaan AJAX POST, jika pembolehubah $_POST anda terlepas pada pengeluaran anda pelayan tetapi bukan pada pelayan tempatan anda, sebab yang berkemungkinan didayakan petikan ajaib pada pelayan pengeluaran.

Petikan ajaib secara automatik melarikan diri petikan tunggal, petikan dua, garis miring ke belakang dan aksara nol apabila ia adalah sebahagian daripada data yang diterima daripada sumber luaran seperti permintaan POST. Ciri ini ialah langkah keselamatan untuk mengelakkan suntikan kod berniat jahat, tetapi ia juga boleh menyebabkan masalah apabila anda perlu mendapatkan semula data mentah.

Untuk menyelesaikan isu dan memastikan tingkah laku yang konsisten merentas kedua-dua pelayan, anda mempunyai beberapa pilihan :

Lumpuhkan Petikan Sihir

Pendekatan yang disyorkan ialah untuk melumpuhkan petikan sihir dalam php.ini. Ini secara global melumpuhkan pembolehubah POST yang melarikan diri. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa petikan ajaib akan dialih keluar dalam PHP 6, jadi adalah idea yang baik untuk mengelak daripada bergantung padanya.

Strip Slashes

Jika anda tidak boleh lumpuhkan petikan ajaib, anda boleh menanggalkan garis miring secara manual daripada pembolehubah $_POST menggunakan fungsi stripslashes():

if (get_magic_quotes_gpc()) {
    $my_post_var = stripslashes($_POST["my_post_var"]);
}

Dengan melaksanakan salah satu daripada penyelesaian ini, anda boleh memastikan bahawa pembolehubah $_POST tidak terlepas pada pelayan pengeluaran anda dan kedua-dua pelayan tempatan dan pengeluaran anda berkelakuan secara konsisten.

Atas ialah kandungan terperinci Mengapa Pembolehubah $_POST Saya Melarikan Diri pada Pengeluaran tetapi Bukan Secara Tempatan?. 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