Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah POST Data Auto-Escaping dalam PHP Walaupun Petikan Ajaib Dilumpuhkan?

Mengapakah POST Data Auto-Escaping dalam PHP Walaupun Petikan Ajaib Dilumpuhkan?

DDD
DDDasal
2024-10-28 07:59:02846semak imbas

Why is POST Data Auto-Escaping in PHP Even When Magic Quotes are Disabled?

Menyingkap Data Siaran Auto-Escape Misteri dalam PHP dengan Petikan Sihir Dilumpuhkan

Apabila bekerja dengan data POST dalam PHP, terutamanya dalam persekitaran WordPress, anda mungkin menghadapi gelagat pelarian automatik yang tidak dijangka walaupun petikan ajaib dimatikan. Isu membingungkan ini timbul apabila data POST mengalami pelarian automatik, walaupun petikan ajaib dilaporkan dilumpuhkan (get_magic_quotes_gpc() mengembalikan 0).

Pengaruh WordPress

WordPress menyertakan fungsi yang memintas data permintaan, termasuk data POST dan melaksanakan operasi tertentu, salah satunya melarikan petikan tunggal ('). Tingkah laku ini berlanjutan walaupun apabila petikan ajaib dilumpuhkan dalam php.ini.

Sumber Pepijat

Pemeriksaan lebih dekat pangkalan kod WordPress mendedahkan pepijat yang dilaporkan di bawah sistem WordPress Core Trac (tiket 18322). Isu ini berkaitan dengan pengendalian data permintaan yang salah, yang mencetuskan pelarian yang tidak diingini.

Penyelesaian

Mujurlah, penyelesaian tersedia untuk menyelesaikan auto-escape ini dilema. WordPress Codex mengesyorkan menggunakan fungsi stripslashes_deep() untuk "menyah-escape" data POST sebelum melakukan sebarang operasi padanya. Dengan menggunakan fungsi ini, anda boleh mengatasi auto-escape WordPress dengan berkesan dan mendapatkan semula data dalam format asalnya.

Untuk melaksanakan penyelesaian ini, tambahkan kod berikut pada skrip PHP anda:

<code class="php">$_GET       = array_map('stripslashes_deep', $_GET);
$_POST      = array_map('stripslashes_deep', $_POST);
$_COOKIE    = array_map('stripslashes_deep', $_COOKIE);
$_SERVER    = array_map('stripslashes_deep', $_SERVER);
$_REQUEST   = array_map('stripslashes_deep', $_REQUEST);</code>
Kod ini memotong garis miring daripada semua superglobal, memastikan bahawa data POST tidak secara automatik terlepas apabila diakses dalam PHP.

Atas ialah kandungan terperinci Mengapakah POST Data Auto-Escaping dalam PHP Walaupun Petikan Ajaib Dilumpuhkan?. 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