Dengan perkembangan berterusan teknologi Internet, isu keselamatan rangkaian semakin menarik perhatian orang ramai. Antaranya, serangan akses tanpa kebenaran adalah ancaman keselamatan rangkaian biasa yang boleh dihalang melalui borang PHP. Artikel ini akan memperkenalkan konsep asas borang PHP dan cara menggunakan borang PHP untuk menghalang serangan akses tanpa kebenaran.
1. Konsep asas borang PHP
Borang PHP ialah teknologi sebelah pelayan yang digunakan untuk pembangunan laman web. Ia boleh berinteraksi dengan pangkalan data dan pelayan dengan membenamkan kod PHP dalam halaman HTML. Borang PHP secara amnya merangkumi elemen berikut:
Borang Kod HTML ialah elemen borang web asas, termasuk nama borang, elemen borang dan tindakan bentuk. Elemen borang boleh menjadi kotak input, kotak drop-down, kawasan teks, dsb. Tindakan borang boleh menyerahkan borang, menetapkan semula borang, dsb.
Skrip PHP ialah jambatan antara borang dan pelayan Ia boleh memproses data yang diserahkan oleh borang dan menyimpannya dalam pangkalan data atau menyalurkannya semula kepada pengguna. Skrip PHP mestilah dalam fail yang sama dengan borang HTML.
Borang PHP secara amnya perlu disambungkan ke pangkalan data dan anda boleh menggunakan sambungan seperti mysqli atau PDO untuk menyambung. Selepas sambungan, operasi seperti pertanyaan data, penyisipan, kemas kini dan pemadaman boleh dilakukan.
2. Bagaimana untuk menghalang serangan akses tanpa kebenaran
Serangan akses tanpa kebenaran merujuk kepada penyerang yang mengakses sumber atau fungsi tertentu tapak web secara haram melalui beberapa cara, seperti pemecahan kata laluan secara kasar, mengganggu URL, dsb. untuk mengakses data sensitif bagi laman web tersebut. Berikut ialah beberapa cara berkesan untuk menghalang serangan akses tanpa kebenaran dengan borang PHP:
Dengan menggunakan pengesahan sesi dalam skrip PHP, anda boleh memastikan pengguna mesti log masuk terlebih dahulu untuk mendapatkan kebenaran sebelum mereka boleh mengakses sumber atau fungsi sensitif daripada laman web tersebut. Sesi ialah teknologi storan sebelah pelayan yang membolehkan pengesahan pengguna dengan menyimpan beberapa maklumat pengguna dalam sesi.
Kod pengesahan sesi boleh ditulis di bahagian atas skrip PHP, seperti:
<?php session_start(); if(!isset($_SESSION['username'])){ header('Location: login.php'); exit(); } ?>
Fungsi kod ini adalah untuk menyemak sama ada pembolehubah sesi bernama nama pengguna wujud, dan jika ia tidak wujud, ubah hala ke log masuk muka surat.
CSRF ialah singkatan daripada pemalsuan permintaan merentas tapak dan merupakan kaedah serangan rangkaian biasa. Penyerang membina permintaan HTTP palsu untuk mengakses dan mengendalikan tapak web sasaran secara haram.
Dalam bentuk PHP, serangan CSRF boleh dicegah dengan menggunakan token CSRF. Token CSRF ialah rentetan rawak yang dijana yang disimpan dalam kuki atau sesi pengguna. Apabila borang diserahkan, nilai token ini diserahkan kepada pelayan untuk pengesahan bagi memastikan kesahihan permintaan.
Kod untuk menjana nilai token boleh ditulis dalam skrip PHP, contohnya:
<?php session_start(); $token = md5(uniqid(rand(), true)); $_SESSION['token'] = $token; ?>
Fungsi kod ini adalah untuk menjana nilai token rawak dan menyimpan nilai dalam sesi.
Dalam borang, nilai token boleh diserahkan ke bahagian pelayan melalui medan tersembunyi, contohnya:
<form action="submit_form.php" method="post"> <input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>"> <!-- 其他表单元素 --> </form>
Di bahagian pelayan, token CSRF boleh disahkan melalui kod berikut:
<?php session_start(); if($_POST['token']!==$_SESSION['token']){ die("非法请求"); } ?>
Fungsi ini kod adalah untuk menyemak token yang diserahkan Sama ada nilai itu sepadan dengan nilai token dalam sesi Jika tidak, permintaan akan ditolak.
Dengan mengesahkan input pengguna dalam borang PHP, anda boleh menghalang suntikan SQL, XSS dan serangan lain dengan berkesan. Dalam borang PHP, anda boleh menggunakan fungsi seperti filter_var dan preg_match untuk pengesahan input, seperti:
$name = $_POST['name']; //获取用户输入 if(!preg_match("/^[a-zA-Z0-9_]{3,15}$/",$name)){ die("用户名格式错误"); //验证用户名格式是否正确 }
Fungsi kod ini adalah untuk menggunakan fungsi preg_match untuk mengesahkan sama ada format nama pengguna adalah betul.
Semasa pengesahan input, fungsi yang sesuai dan ungkapan biasa perlu dipilih mengikut situasi khusus untuk memastikan keselamatan input pengguna.
Kesimpulan
Borang PHP boleh menghalang serangan akses tanpa kebenaran secara berkesan, dengan itu meningkatkan keselamatan tapak web. Artikel ini memperkenalkan konsep asas bentuk dan kaedah PHP untuk menghalang serangan akses tanpa kebenaran. Saya harap ia akan membantu pembangun PHP.
Atas ialah kandungan terperinci Cara menggunakan borang PHP untuk menghalang serangan akses yang tidak dibenarkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!