Cara mengendalikan input dan permintaan pengguna dengan selamat dalam pembangunan PHP
Dengan perkembangan dan populariti Internet, semakin ramai orang terlibat dalam pembangunan aplikasi web. Sebagai salah satu bahasa pembangunan yang paling biasa digunakan, PHP semakin digunakan. Walau bagaimanapun, disebabkan oleh input pengguna yang tidak terkawal, aplikasi web sering menghadapi risiko keselamatan, seperti suntikan SQL, serangan skrip merentas tapak, dsb. Oleh itu, apabila membangunkan PHP, kami perlu melakukan pemprosesan input pengguna yang selamat untuk mengelakkan operasi dan serangan berniat jahat. Artikel ini akan memperkenalkan beberapa kaedah pemprosesan keselamatan biasa dan memberikan contoh kod khusus.
filter_var
dan filter_input
. Berikut ialah contoh kod untuk menapis dan mengesahkan e-mel yang dimasukkan oleh pengguna: $email = $_POST['email']; // 过滤和验证email $email = filter_var($email, FILTER_SANITIZE_EMAIL); if (filter_var($email, FILTER_VALIDATE_EMAIL)) { // 合法的email地址 } else { // 非法的email地址 }
filter_var
和filter_input
来实现。以下是一个示例代码,对用户输入的email进行过滤和验证:$username = $_POST['username']; $password = $_POST['password']; // 建立数据库连接 $pdo = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 使用预处理语句执行查询 $stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username AND password = :password'); $stmt->execute(array(':username' => $username, ':password' => $password)); // 获取查询结果 $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
$name = $_POST['name']; // 对用户输入进行HTML编码 $name = htmlspecialchars($name, ENT_QUOTES, 'UTF-8');
需要注意的是,只对用户输入进行HTML编码是不够的,输出到HTML页面时,还需要使用合适的输出函数,如echo
和print
Cegah suntikan SQL
Cegah serangan skrip merentas tapak
Serangan skrip merentas tapak (XSS) rujuk kepada serangan Penyerang memasukkan kod skrip berniat jahat ke dalam halaman Web untuk mendapatkan maklumat sensitif pengguna atau melakukan operasi berniat jahat yang lain. Untuk mengelakkan serangan XSS, kami boleh HTML mengekod input pengguna untuk memastikan semua input dianggap sebagai teks biasa dan bukan kod untuk dilaksanakan. Berikut ialah contoh kod yang menunjukkan cara mengekod HTML input pengguna:Perlu diambil perhatian bahawa tidak cukup untuk mengekod input pengguna HTML sahaja Apabila mengeluarkan ke halaman HTML, anda juga perlu menggunakan fungsi output yang sesuai, seperti echo
dan print
, untuk memastikan kandungan output tidak dihuraikan oleh penyemak imbas sebagai kod boleh laku.
Atas ialah kandungan terperinci Cara mengendalikan input dan permintaan pengguna dengan selamat dalam pembangunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!