Rumah >pembangunan bahagian belakang >tutorial php >phpmaster | Pengesahan input menggunakan fungsi penapis
dan filter_input()
, membincangkan potensi perangkap, dan menyimpulkan dengan panggilan untuk bertindak. Bersedia? Mari kita menyelam! filter_var()
Takeaways utama:
filter_input()
menawarkan kestabilan, keselamatan, dan penyelenggaraan yang lebih baik berbanding dengan penyelesaian tersuai atau perpustakaan pihak ketiga. filter_var()
FILTER_CALLBACK
kepentingan pengesahan input
Pengesahan input adalah kritikal kerana anda tidak dapat mengawal input pengguna secara langsung. Input yang tidak dipercayai boleh membawa kepada tingkah laku yang tidak dijangka atau pelanggaran keselamatan. Walaupun saya tidak akan menyelidiki spesifik kelemahan (rujuk artikel laman web ini mengenai keselamatan PHP: serangan skrip lintas tapak untuk maklumat lanjut), mengesahkan input adalah barisan pertahanan pertama terhadap pelaksanaan yang tidak diinginkan. Penaipan longgar PHP menjadikan pengesahan sangat penting.
Mengapa menggunakan kaedah terbina dalam?
Php 5.2.0 Diperkenalkan dan filter_input()
, memudahkan pengesahan. Menggunakan fungsi terbina dalam ini lebih baik untuk penyelesaian tersuai atau alat pihak ketiga kerana beberapa sebab: filter_var()
Kaedah yang tidak cekap: kaedah yang cekap menggunakan Fungsi e -mel yang tidak selamat: fungsi e -mel selamat menggunakan bendera Potongan perangkap yang berpotensi Kesimpulan Menguasai fungsi pengesahan input PHP adalah penting untuk membina aplikasi yang selamat dan boleh dipercayai. Ambil satu fungsi dalam kod anda, bereksperimen dengan pelbagai input, gunakan penapis, dan perhatikan hasilnya. Kongsi penemuan anda! Soalan Lazim (Soalan Lazim) (Sama seperti yang asal, tetapi diubahsuai untuk Kesesuaian dan Kejelasan) filter_input()
mengambil semula dan menapis pembolehubah luaran. Katakan kita memerlukan integer antara 15 dan 20 dari URL: <code class="language-php"><?php
if (isset($_GET["value"])) {
$value = $_GET["value"];
} else {
$value = false;
}
if (is_numeric($value) && ($value >= 15 && $value <= 20)) {
// run my code
} else {
// handle the issue
}
?></code>
filter_input()
: <code class="language-php"><?php
$value = filter_input(INPUT_GET, "value", FILTER_VALIDATE_INT,
array("options" => array("min_range" => 15, "max_range" => 20)));
if ($value) {
// run my code
} else {
// handle the issue
}
?></code>
filter_var()
sesuai untuk pengesahan dalam fungsi atau kelas. Pertimbangkan fungsi e -mel ini: <code class="language-php"><?php
function emailUser($email) {
mail($email, "Here is my email", "Some Content");
}
?></code>
filter_var()
: <code class="language-php"><?php
function emailUser($email) {
$email = filter_var($email, FILTER_VALIDATE_EMAIL);
if ($email !== false) {
mail($email, "Here is my email", "Some Content");
} else {
// handle invalid email address
}
}
?></code>
FILTER_CALLBACK
membolehkan logik pengesahan tersuai.
filter_var()
mengambil data dan jenis penapis; Banyak penapis yang telah ditetapkan, ditambah keupayaan sanitisasi. FILTER_CALLBACK
dengan fungsi panggil balik tersuai.
Atas ialah kandungan terperinci phpmaster | Pengesahan input menggunakan fungsi penapis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!