Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Fahami kelemahan dan serangan antara muka web pada pelayan Linux.

Fahami kelemahan dan serangan antara muka web pada pelayan Linux.

王林
王林asal
2023-09-08 13:58:52762semak imbas

Fahami kelemahan dan serangan antara muka web pada pelayan Linux.

Fahami kelemahan dan serangan antara muka Web pada pelayan Linux

Dengan perkembangan pesat Internet, aplikasi Web telah menjadi cara penghantaran dan interaksi maklumat yang penting untuk perusahaan dan individu. Sebagai salah satu platform pengehosan yang paling biasa untuk aplikasi web, pelayan Linux juga telah menjadi sasaran utama untuk serangan penggodam. Kerentanan dan serangan antara muka web adalah salah satu isu keselamatan yang paling biasa pada pelayan Linux. Artikel ini akan meneroka beberapa kelemahan antara muka web biasa dan kaedah serangan, dan memberikan contoh kod yang sepadan.

1. Serangan suntikan SQL

Suntikan SQL ialah salah satu kelemahan antara muka web yang paling biasa. Penggodam menyuntik pernyataan SQL khas ke dalam data yang diserahkan oleh pengguna untuk mengawal pangkalan data untuk melaksanakan operasi yang tidak dibenarkan, dengan itu mendapatkan, mengubah suai atau memadam data sensitif. Berikut ialah contoh kod mudah:

import pymysql

def login(username, password):
    db = pymysql.connect("localhost", "root", "password", "database")
    cursor = db.cursor()
    
    sql = "SELECT * FROM users WHERE username = '%s' AND password = '%s'" % (username, password)
    cursor.execute(sql)
    
    data = cursor.fetchone()
    db.close()
    
    return data

Dalam kod di atas, kod hasad dimasukkan ke dalam usernamepassword直接以字符串拼接的方式构造了一条SQL查询语句。这样的代码容易受到SQL注入攻击,黑客可以通过在usernamepassword yang diterima untuk memintas pengesahan log masuk.

Untuk mengelakkan serangan sedemikian, pertanyaan berparameter atau rangka kerja ORM harus digunakan untuk memastikan data input terlepas dan diproses dengan betul. Kod yang diubah suai adalah seperti berikut:

import pymysql

def login(username, password):
    db = pymysql.connect("localhost", "root", "password", "database")
    cursor = db.cursor()
    
    sql = "SELECT * FROM users WHERE username = %s AND password = %s"
    cursor.execute(sql, (username, password))
    
    data = cursor.fetchone()
    db.close()
    
    return data

2. Kerentanan muat naik fail

Kerentanan muat naik fail bermakna fail yang dimuat naik tidak disahkan dan ditapis dengan betul, menyebabkan penggodam memuat naik fail berniat jahat ke dalam pelayan. Penggodam boleh mendapatkan kebenaran pelayan dengan memuat naik cengkerang web berniat jahat, melakukan operasi sewenang-wenangnya, dan juga mengawal keseluruhan pelayan. Berikut ialah contoh kod mudah:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// 检查文件类型
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "只允许上传图片文件.";
    $uploadOk = 0;
}

// 检查文件大小
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "抱歉,文件太大.";
    $uploadOk = 0;
}

// 保存上传文件
if ($uploadOk == 0) {
    echo "抱歉,文件未上传.";
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "文件上传成功.";
    } else {
        echo "抱歉,文件上传失败.";
    }
}
?>

Dalam kod di atas, jenis fail yang dimuat naik tidak dinilai dan ditapis dengan tepat Penggodam boleh memintas sekatan dengan mengubah suai jenis fail dan memuat naik fail berniat jahat. Untuk mengelakkan serangan sedemikian, fail yang dimuat naik hendaklah disahkan dan ditapis dengan betul, mengehadkan jenis dan saiz fail yang dibenarkan untuk dimuat naik.

3. Serangan Skrip Merentas Tapak

Skrip Merentas Tapak (XSS) merujuk kepada penggodam menyuntik skrip berniat jahat ke dalam halaman web untuk mendapatkan maklumat peribadi pengguna atau melakukan operasi haram yang lain. Berikut ialah contoh kod mudah:

<?php
$user_input = $_GET['input'];
echo "<p>" . $user_input . "</p>";
?>

Dalam kod di atas, input kandungan oleh pengguna dikeluarkan secara langsung, tanpa memproses dan menapis input pengguna Penggodam boleh melaksanakan serangan XSS dengan membina skrip berniat jahat. Untuk mengelakkan serangan sedemikian, input pengguna harus diproses dan ditapis dengan betul, menggunakan fungsi melarikan diri atau penapis HTML.

Artikel ini memperkenalkan kelemahan antara muka web biasa dan kaedah serangan pada pelayan Linux, dan memberikan contoh kod yang sepadan. Untuk memastikan keselamatan aplikasi web, pembangun harus sedar tentang kewujudan kelemahan ini dan mengambil langkah perlindungan yang sepadan untuk meningkatkan keselamatan pelayan.

Atas ialah kandungan terperinci Fahami kelemahan dan serangan antara muka web pada pelayan Linux.. 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