Rumah > pembangunan bahagian belakang > tutorial php > Mengamankan Aplikasi Web PHP: Amalan Hands-On

Mengamankan Aplikasi Web PHP: Amalan Hands-On

Patricia Arquette
Lepaskan: 2024-12-01 04:19:14
asal
910 orang telah melayarinya

Securing PHP Web Applications: Hands-On Practices

Pengenalan

Ketahui amalan keselamatan penting setiap pembangun PHP mesti pakai untuk melindungi aplikasi web. Daripada membersihkan input kepada melaksanakan HTTPS dan menggunakan pengepala keselamatan moden, panduan ini menyediakan contoh praktikal dan arahan langkah demi langkah untuk mengurangkan kelemahan seperti suntikan SQL, XSS dan CSRF.


Jadual Kandungan

  1. Pengesahan Input dan Sanitasi
  2. Menggunakan Penyata Disediakan untuk Pertanyaan SQL
  3. Storan Kata Laluan Selamat
  4. Mencegah Serangan XSS
  5. Melaksanakan Perlindungan CSRF
  6. Menetapkan Pengepala Keselamatan HTTP
  7. Mengurus Sesi PHP Selamat
  8. Mengkonfigurasi Pelaporan Ralat Dengan Selamat
  9. Menguatkuasakan HTTPS dengan SSL/TLS
  10. Memastikan PHP dan Perpustakaan dikemas kini

1. Pengesahan Input dan Sanitasi

Jangan sekali-kali mempercayai input pengguna; sahkan dan bersihkannya sebelum diproses.

Contoh: Mengesahkan dan membersihkan input borang hubungan

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
    $email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);

    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "Invalid email address!";
    } else {
        echo "Name: " . htmlspecialchars($name) . "<br>Email: " . htmlspecialchars($email);
    }
}
?>
Salin selepas log masuk

Penjelasan:

  • filter_input() membersihkan input dengan mengalih keluar aksara berbahaya.
  • FILTER_VALIDATE_EMAIL menyemak sama ada input adalah e-mel yang sah.
  • htmlspecialchars() menghalang suntikan HTML dengan melepaskan aksara khas.

2. Gunakan Penyata Disediakan untuk Pertanyaan Pangkalan Data

Lindungi daripada serangan SQL Injection.

Contoh: Menggunakan PDO dengan pernyataan yang disediakan

<?php
try {
    $pdo = new PDO('mysql:host=localhost;dbname=testdb', 'root', '');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email");
    $stmt->bindParam(':email', $email, PDO::PARAM_STR);

    $email = $_POST['email'];
    $stmt->execute();

    $user = $stmt->fetch(PDO::FETCH_ASSOC);
    if ($user) {
        echo "Welcome, " . htmlspecialchars($user['name']);
    } else {
        echo "User not found.";
    }
} catch (PDOException $e) {
    echo "Database error: " . $e->getMessage();
}
?>
Salin selepas log masuk

Penjelasan:

  • Pernyataan yang disediakan memastikan parameter pertanyaan dilepaskan dengan betul, menghalang suntikan SQL.
  • bindParam() mengikat pembolehubah dengan selamat pada pertanyaan.

Kesimpulan

Dengan mengikuti amalan terbaik keselamatan ini, anda boleh membina aplikasi PHP teguh yang melindungi kedua-dua data pengguna dan integriti pelayan. Keselamatan bukan tugas sekali sahaja tetapi proses berterusan yang memerlukan kemas kini, audit dan pematuhan piawaian pengekodan secara berkala. Gunakan kaedah ini untuk meningkatkan kebolehpercayaan dan kebolehpercayaan aplikasi anda.

Jika anda ingin meneroka amalan terbaik dengan lebih lanjut, Klik Di Sini.

Kekal Terhubung!

  • Hubungi saya di LinkedIn untuk membincangkan idea atau projek.
  • Lihat Portfolio saya untuk projek yang menarik.
  • Beri repositori GitHub saya bintang ⭐ pada GitHub jika anda rasa ia berguna!

Sokongan dan maklum balas anda amat bermakna! ?

Atas ialah kandungan terperinci Mengamankan Aplikasi Web PHP: Amalan Hands-On. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan