Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengalaman pembelajaran PHP: Cara menulis kod selamat

Pengalaman pembelajaran PHP: Cara menulis kod selamat

WBOY
WBOYasal
2023-08-17 21:37:471233semak imbas

Pengalaman pembelajaran PHP: Cara menulis kod selamat

Pengalaman pembelajaran PHP: Cara menulis kod selamat

Dalam era Internet, dengan perkembangan pesat maklumat, keselamatan rangkaian telah menjadi isu yang semakin penting. Sebagai pembangun yang sedang belajar PHP, menulis kod selamat adalah tanggungjawab kami yang tidak boleh diganggu gugat. Artikel ini akan berkongsi beberapa pandangan tentang cara menulis kod PHP selamat, bersama-sama dengan beberapa contoh kod.

  1. Pengesahan Input
    Pengesahan input ialah langkah pertama dalam menulis kod selamat. Sebarang data yang diperoleh daripada input pengguna perlu disahkan untuk mengelakkan pengguna berniat jahat daripada menyerahkan data berniat jahat. Berikut ialah contoh mudah yang menunjukkan cara mengesahkan nombor mudah alih:
function validatePhoneNumber($phoneNumber) {
   $pattern = "/^[1-9]d{10}$/";
   if (preg_match($pattern, $phoneNumber)) {
      // 验证通过,继续处理逻辑
   } else {
      // 验证失败,给出错误提示
   }
}
  1. Penapisan output
    Pastikan anda menapis data sebelum mengeluarkannya ke halaman hadapan. Ini memastikan bahawa skrip berniat jahat yang diserahkan oleh pengguna tidak akan dilaksanakan dan mengelakkan kelemahan XSS (serangan skrip merentas tapak). Berikut ialah contoh penapisan keluaran mudah:
function filterOutput($string) {
   return htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
}

// 输出到前端页面
echo filterOutput($userInput);
  1. Keselamatan Pangkalan Data
    Menghantar input pengguna terus ke pertanyaan pangkalan data adalah sangat berbahaya dan terdedah kepada serangan suntikan SQL. Untuk mengelakkan situasi ini, anda boleh menggunakan penyata yang disediakan dan pengikatan parameter untuk memproses pertanyaan pangkalan data dan melindungi keselamatan pangkalan data. Berikut ialah contoh menggunakan pernyataan yang disediakan dan pengikatan parameter:
$pdo = new PDO("mysql:host=localhost;dbname=myDatabase", "username", "password");

$statement = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password");
$statement->bindParam(':username', $username);
$statement->bindParam(':password', $password);

$statement->execute();

$result = $statement->fetch(PDO::FETCH_ASSOC);
  1. Muat naik fail
    Fungsi muat naik fail ialah fungsi yang biasa digunakan, tetapi ia juga berpotensi risiko keselamatan. Sekatan yang munasabah harus diletakkan pada fail yang dimuat naik, termasuk jenis fail, saiz fail, dsb., untuk memastikan pengguna tidak boleh memuat naik fail berniat jahat atau fail besar yang menduduki sumber pelayan. Berikut ialah contoh muat naik fail:
if ($_FILES["file"]["size"] > 2000000) {
   echo "文件过大";
   exit;
}

$allowedFileType = array("pdf", "doc", "jpg", "png");
$allowedFileSize = 500000;

$uploadedFileType = strtolower(pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION));
if (!in_array($uploadedFileType, $allowedFileType)) {
   echo "不支持的文件类型";
   exit;
}

if ($_FILES["file"]["size"] > $allowedFileSize) {
   echo "文件过大";
   exit;
}

// 保存上传文件
move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);

Dengan memberi perhatian kepada aspek di atas, kami boleh meningkatkan keupayaan kami untuk menulis kod PHP selamat dan melindungi data pengguna dan keselamatan sistem. Sudah tentu, ini hanyalah beberapa langkah keselamatan asas Kami juga perlu terus belajar dan memberi perhatian kepada teknologi keselamatan terkini untuk menangani ancaman keselamatan rangkaian yang berkembang. Saya harap cerapan ini akan membantu pembangun yang sedang mempelajari PHP.

Atas ialah kandungan terperinci Pengalaman pembelajaran PHP: Cara menulis kod selamat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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