Rumah pembangunan bahagian belakang masalah PHP Fahami pelarian automatik tatasusunan yang disimpan dalam PHP

Fahami pelarian automatik tatasusunan yang disimpan dalam PHP

Apr 19, 2023 am 09:18 AM

Apabila saya menggunakan PHP untuk membangunkan tapak web baru-baru ini, saya menghadapi masalah: apabila data yang dimasukkan oleh pengguna disimpan dalam tatasusunan, didapati bahawa aksara khas dalam data tidak terlepas, yang boleh membawa dengan mudah kepada kelemahan keselamatan.

Untuk menyelesaikan masalah ini, kita perlu memahami mekanisme pelarian automatik PHP.

Mekanisme melarikan diri automatik dalam php dilaksanakan melalui pilihan magic_quotes_gpc. Apabila pilihan ini dihidupkan, PHP secara automatik akan melepaskan beberapa aksara khas, seperti petikan tunggal, petikan berganda, garis miring ke belakang, dsb., dalam input pengguna dan data yang diperoleh daripada pangkalan data. Tujuannya adalah untuk mengelakkan isu keselamatan seperti suntikan SQL, tetapi ia juga akan menyebabkan beberapa pelarian yang salah Contohnya, apabila menyimpan kandungan teks kaya, teg HTML dan gaya CSS juga akan terlepas, mengakibatkan paparan tidak normal.

Untuk menyelesaikan masalah ini, kami boleh melarikan diri daripada data yang dimasukkan oleh pengguna sendiri dengan mematikan pilihan magic_quotes_gpc Ini boleh mengelakkan kandungan yang tidak diperlukan dan melindungi keselamatan data.

Berikut ialah contoh kod ringkas yang menunjukkan cara melepaskan diri dan menyimpannya secara manual dalam tatasusunan:

//关闭magic_quotes_gpc选项
ini_set('magic_quotes_gpc', 'off');

//接收用户输入的数据
$username = addslashes($_POST['username']);
$password = addslashes($_POST['password']);

//存入数组
$user = array(
    'username' => $username,
    'password' => $password
);
Salin selepas log masuk

Dalam kod di atas, mula-mula gunakan fungsi ini_set untuk mematikan magic_quotes_gpc pilihan, dan kemudian gunakan fungsi addslashes untuk Data yang dimasukkan oleh pengguna dilepaskan, dan akhirnya data yang dilepaskan disimpan dalam tatasusunan.

Selain itu, kami juga boleh menggunakan fungsi htmlspecialchars untuk melepaskan tag html bagi memastikan kandungan teks kaya boleh dipaparkan dengan betul. Kod khusus adalah seperti berikut:

//关闭magic_quotes_gpc选项
ini_set('magic_quotes_gpc', 'off');

//接收用户输入的数据
$content = $_POST['content'];

//转义html标签
$content = htmlspecialchars($content, ENT_QUOTES);

//存入数组
$data = array(
    'content' => $content
);
Salin selepas log masuk

Untuk meringkaskan, mekanisme pelarian automatik dalam PHP boleh dikawal dengan mengubah suai pilihan magic_quotes_gpc Selain itu, data juga boleh dilepaskan secara manual untuk memastikan keselamatan data. Dalam pembangunan sebenar, kita harus memilih kaedah melarikan diri yang sesuai berdasarkan senario aplikasi tertentu untuk mengelakkan kelemahan keselamatan dan memaparkan keabnormalan.

Atas ialah kandungan terperinci Fahami pelarian automatik tatasusunan yang disimpan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah amalan terbaik untuk deduplikasi tatasusunan php Apakah amalan terbaik untuk deduplikasi tatasusunan php Mar 03, 2025 pm 04:41 PM

Apakah amalan terbaik untuk deduplikasi tatasusunan php

Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama? Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama? Mar 03, 2025 pm 04:51 PM

Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama?

Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi? Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi? Mar 03, 2025 pm 04:47 PM

Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi?

Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php Mar 03, 2025 pm 04:50 PM

Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php

Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP? Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP? Mar 10, 2025 pm 06:15 PM

Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP?

Apakah piawaian pengekodan PHP terkini dan amalan terbaik? Apakah piawaian pengekodan PHP terkini dan amalan terbaik? Mar 10, 2025 pm 06:16 PM

Apakah piawaian pengekodan PHP terkini dan amalan terbaik?

Bagaimana saya bekerja dengan sambungan php dan pecl? Bagaimana saya bekerja dengan sambungan php dan pecl? Mar 10, 2025 pm 06:12 PM

Bagaimana saya bekerja dengan sambungan php dan pecl?

Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP? Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP? Mar 10, 2025 pm 06:12 PM

Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP?

See all articles