PHP ialah bahasa skrip popular yang digunakan secara meluas dalam pembangunan web. Apabila kita perlu mengumpul maklumat input pengguna pada halaman Web, menggunakan borang adalah pilihan yang baik. Apabila menggunakan borang untuk menyerahkan data dalam PHP, anda perlu membuat beberapa tetapan untuk memastikan data boleh diterima dan diproses dengan betul.
Artikel ini akan menumpukan pada cara menyediakan kaedah penyerahan borang, mendapatkan data borang dan mencegah serangan borang dalam PHP.
Dalam HTML, terdapat dua cara biasa untuk menyerahkan borang: dapatkan dan hantar. Kaedah get menambahkan data borang pada URL, manakala kaedah siaran merangkum data dan menghantarnya dalam badan mesej permintaan HTTP. Dalam PHP, kami boleh mengakses data borang melalui pembolehubah superglobal $_GET dan $_POST, jadi kami perlu membuat tetapan yang sepadan mengikut kaedah penyerahan borang yang berbeza.
Berikut ialah contoh borang mudah untuk mengumpul nama pengguna dan kata laluan pengguna:
<form action="login.php" method="post"> <label for="username">用户名:</label> <input type="text" id="username" name="username"><br> <label for="password">密码:</label> <input type="password" id="password" name="password"><br> <input type="submit" value="登录"> </form>
Dalam borang ini, kami menggunakan kaedah siaran untuk menyerahkan data ke halaman login.php. Dalam login.php, nama pengguna dan kata laluan yang dimasukkan dalam borang boleh diakses melalui $_POST['nama pengguna'] dan $_POST['kata laluan'].
Perlu diambil perhatian bahawa semasa menyerahkan borang, anda mesti memberi perhatian kepada keselamatan menggunakan kaedah pos boleh merangkum data dalam badan mesej permintaan HTTP, yang lebih selamat daripada kaedah dapatkan. Oleh itu, apabila mengendalikan borang yang mengandungi maklumat sensitif, anda harus memberi keutamaan untuk menggunakan kaedah siaran.
Mendapatkan data borang dalam PHP adalah sangat mudah, hanya gunakan pembolehubah super global yang sepadan. Jika kaedah penyerahan borang adalah dapatkan, gunakan pembolehubah super global $_GET Jika kaedah penyerahan borang adalah pos, gunakan pembolehubah super global $_POST.
Berikut ialah contoh mudah yang menunjukkan cara mendapatkan data borang dalam PHP:
$username = $_POST['username']; $password = $_POST['password']; echo "您输入的用户名是:".$username."<br>"; echo "您输入的密码是:".$password."<br>";
Perlu diingat bahawa apabila kita menggunakan $_POST atau $_GET untuk mendapatkan data borang, kita harus Sentiasa gunakan fungsi isset() untuk menentukan sama ada pembolehubah wujud untuk mengelakkan ralat pembolehubah yang tidak ditentukan.
Selain itu, apabila menggunakan data luaran yang tidak selamat (seperti mendapatkan data daripada parameter URL), semakan dan penapisan keselamatan diperlukan untuk mengelakkan serangan seperti suntikan SQL.
Serangan borang merujuk kepada tingkah laku penyerang menggunakan penyerahan borang untuk mendapatkan atau mengusik data tapak web. Jenis serangan bentuk biasa termasuk pemalsuan permintaan merentas tapak (CSRF) dan suntikan SQL. Untuk mengelakkan serangan bentuk, kita perlu mengambil langkah keselamatan yang sesuai.
3.1 Mencegah serangan CSRF
Prinsip serangan CSRF ialah penyerang menggunakan maklumat log masuk mangsa di tapak web lain untuk memalsukan permintaan POST ke tapak web sasaran, dengan itu melaksanakan pelbagai serangan. Untuk mengelakkan serangan CSRF, kami boleh mengambil langkah berikut:
(1) Gunakan pengesahan Token: jana Token unik apabila borang diserahkan, dan simpan Token dalam pembolehubah Sesi. Apabila borang diserahkan, sahkan bahawa token sepadan, dan jika tidak, tolak permintaan.
(2) Sahkan URL sumber: Apabila borang diserahkan, sahkan sama ada URL sumber adalah sama dengan tapak sasaran. Jika berbeza, tolak permintaan itu.
3.2 Mencegah SQL Injection
SQL injection merujuk kepada penyerang yang memasukkan kod SQL berniat jahat ke dalam bentuk untuk mencapai capaian yang tidak sah kepada pangkalan data. Untuk mengelakkan suntikan SQL, kami harus menapis dan melarikan data yang dimasukkan pengguna.
Berikut ialah contoh mudah yang menunjukkan cara menggunakan fungsi mysqli_real_escape_string() untuk melarikan data yang dimasukkan pengguna:
$username = mysqli_real_escape_string($conn, $_POST['username']); $password = mysqli_real_escape_string($conn, $_POST['password']);
Dalam contoh ini, $conn mewakili objek sambungan pangkalan data, The mysqli_real_escape_string() fungsi digunakan untuk melepaskan rentetan input. Ini menghalang kod hasad yang dimasukkan oleh pengguna daripada menjejaskan pangkalan data.
Kesimpulan
Menggunakan borang untuk mengumpul input pengguna ialah kaedah biasa dalam pembangunan web, tetapi langkah keselamatan dan perlindungan perlu diberi perhatian. Ia agak mudah untuk mendapatkan data borang atau menetapkan kaedah penyerahan dalam PHP, tetapi anda perlu memberi perhatian kepada pembolehubah tidak ditentukan dan penapisan keselamatan. Mencegah serangan borang memerlukan langkah keselamatan khusus, seperti pengesahan Token dan penapisan SQL. Hanya dengan mempertimbangkan sepenuhnya keselamatan dan keperluan sebenar boleh penyerahan borang dibuat lebih dipercayai dan selamat.
Atas ialah kandungan terperinci Bagaimana untuk menyediakan kaedah penyerahan borang dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!