Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Perlindungan keselamatan PHP dan pencegahan serangan dalam pembangunan program mini

Perlindungan keselamatan PHP dan pencegahan serangan dalam pembangunan program mini

PHPz
PHPzasal
2023-07-07 08:55:36849semak imbas

Perlindungan keselamatan PHP dan pencegahan serangan dalam pembangunan program mini

Dengan perkembangan pesat Internet mudah alih, program mini telah menjadi bahagian penting dalam kehidupan orang ramai. Sebagai bahasa pembangunan back-end yang berkuasa dan fleksibel, PHP juga digunakan secara meluas dalam pembangunan program kecil. Walau bagaimanapun, isu keselamatan sentiasa menjadi aspek yang memerlukan perhatian dalam pembangunan program. Artikel ini akan menumpukan pada perlindungan keselamatan PHP dan pencegahan serangan dalam pembangunan program kecil, dan menyediakan beberapa contoh kod. Pencegahan

  1. XSS (serangan skrip merentas tapak)

Serangan XSS bermakna penggodam menyuntik kod skrip berniat jahat ke dalam halaman web, menyebabkan penyemak imbas pengguna melaksanakan kod skrip berniat jahat ini, dengan itu mencapai tujuan serangan. Untuk mengelakkan serangan XSS, kami boleh menggunakan fungsi terbina dalam PHP htmlspecialchars untuk melepaskan data yang dimasukkan pengguna.

Kod sampel adalah seperti berikut:

$userInput = $_GET['user_input'];
$escapedInput = htmlspecialchars($userInput);
echo $escapedInput;
  1. Pencegahan CSRF (Pemalsuan permintaan merentas tapak)

Serangan CSRF merujuk kepada penggodam yang memalsukan identiti log masuk pengguna untuk menipu pengguna supaya melakukan operasi tanpa mengetahuinya, dengan itu mencapai tujuan serangan. Untuk mengelakkan serangan CSRF, kami boleh menggunakan fungsi terbina dalam PHP session_start() dan csrf_token untuk menjana token dan mengesahkan token setiap kali operasi penting dimulakan.

Kod sampel adalah seperti berikut:

session_start();
if (empty($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = md5(uniqid(mt_rand(), true));
}
$csrfToken = $_SESSION['csrf_token'];

// 显示表单
echo '<form action="submit.php" method="post">';
echo '<input type="hidden" name="csrf_token" value="' . $csrfToken . '">';
echo '<input type="submit" value="提交">';
echo '</form>';

// 提交表单时验证令牌
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if ($_POST['csrf_token'] !== $csrfToken) {
        die('CSRF攻击');
    }
    // 其他处理逻辑
}
  1. SQL injection prevention

SQL injection bermakna penggodam boleh mendapatkan, mengubah suai atau memadam data dalam pangkalan data dengan memasukkan kod SQL berniat jahat ke dalam input pengguna. Untuk mengelakkan suntikan SQL, kami boleh menggunakan fungsi terbina dalam PHP mysqli_real_escape_string untuk melepaskan data yang dimasukkan oleh pengguna.

Kod sampel adalah seperti berikut:

$db = mysqli_connect('localhost', 'user', 'password', 'database');
if (mysqli_connect_errno()) {
    die('数据库连接失败');
}

$userInput = $_GET['user_input'];
$escapedInput = mysqli_real_escape_string($db, $userInput);

$query = "SELECT * FROM users WHERE username='$escapedInput'";
$result = mysqli_query($db, $query);
while ($row = mysqli_fetch_assoc($result)) {
    // 处理查询结果
}
mysqli_close($db);

Ringkasnya, dalam pembangunan program kecil, perlindungan keselamatan PHP dan pencegahan serangan adalah sangat penting. Artikel ini memberikan beberapa contoh kod untuk pencegahan keselamatan daripada tiga aspek: XSS, CSRF dan suntikan SQL. Walau bagaimanapun, perlindungan keselamatan adalah proses yang berterusan, dan pembangun juga perlu memberi perhatian yang teliti terhadap ancaman keselamatan semasa dan mengambil langkah berjaga-jaga yang sewajarnya tepat pada masanya mengikut situasi. Saya berharap kandungan artikel ini boleh membawa sedikit bantuan kepada pembangun program kecil.

Atas ialah kandungan terperinci Perlindungan keselamatan PHP dan pencegahan serangan dalam pembangunan program mini. 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