Rumah Java javaTutorial Penyahserikatan dan pencegahan kerentanan muat naik fail berniat jahat di Java

Penyahserikatan dan pencegahan kerentanan muat naik fail berniat jahat di Java

Aug 09, 2023 pm 02:01 PM
Pencegahan kerentanan Keterdedahan deseralisasi Muat naik fail berniat jahat

Penyahserikatan dan pencegahan kerentanan muat naik fail berniat jahat di Java

Penyahserialisasian dan pencegahan kerentanan muat naik fail berniat jahat di Java

Pengenalan:
Dengan perkembangan Internet, isu keselamatan rangkaian telah menjadi semakin ketara, dan beberapa serangan kerentanan biasa ialah kerentanan penyahserilan.keterdedahan fail berniat jahat Artikel ini akan menumpukan pada prinsip kedua-dua kelemahan ini dan cara mencegahnya, serta menyediakan beberapa contoh kod.

1. Prinsip Kerentanan Deserialisasi
Di Java, pensirilan dan penyahserikan boleh digunakan untuk mencapai penyimpanan objek yang berterusan. Pensirian ialah proses menukar objek kepada aliran bait, manakala penyahsiran ialah proses menukar aliran bait kepada objek semula. Walau bagaimanapun, proses penyahserikatan mempunyai risiko keselamatan, dan penyerang berniat jahat boleh melaksanakan kod sewenang-wenangnya dengan membina data bersiri berniat jahat.

Sebab kerentanan penyahserikatan ialah apabila kelas disirikan, sifat, kaedah dan gelagat berkaitannya disimpan dalam strim bait bersiri. Semasa proses penyahserialisasian, mesin maya Java cuba memulihkan aliran bait ke dalam objek. Penyerang boleh mencetuskan kelemahan dalam program dan melaksanakan kod yang tidak dibenarkan dengan membina data bersiri tertentu.

Untuk menunjukkan contoh kelemahan penyahserialisasian, berikut ialah contoh mudah:

import java.io.FileInputStream;
import java.io.ObjectInputStream;

public class DeserializeExample {
    public static void main(String[] args) {
        try {
            FileInputStream fileIn = new FileInputStream("malicious.ser");
            ObjectInputStream in = new ObjectInputStream(fileIn);
            Object obj = in.readObject();
            in.close();
            fileIn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Salin selepas log masuk

Dalam contoh di atas, kami membaca objek daripada fail bernama "malicious.ser". Walau bagaimanapun, jika penyerang membina fail "malicious.ser" berniat jahat yang mengandungi kod hasad, kod hasad akan dilaksanakan semasa penyahserilan.

Begini cara untuk melindungi daripada kelemahan penyahserialisasian:

  1. Jangan terima data bersiri daripada sumber yang tidak dipercayai, hanya terima data daripada sumber yang boleh dipercayai.
  2. Jangan gunakan mekanisme pensirilan lalai, tetapi gunakan kaedah pemprosesan penyahsirilan tersuai.
  3. Lakukan pengesahan input untuk penyahserikatan dan hanya terima data yang mematuhi format yang dijangkakan.

2. Prinsip Kerentanan Muat Naik Fail Berniat jahat
Kerentanan muat naik fail berniat jahat bermakna penyerang memuat naik fail berniat jahat ke pelayan dan memintas sekatan keselamatan melalui antara muka muat naik fail yang sah. Setelah fail hasad berjaya dimuat naik, penyerang boleh melaksanakan kod hasad dengan mengakses fail tersebut.

Sebab kerentanan muat naik fail berniat jahat ialah apabila ramai pembangun melaksanakan fungsi muat naik fail, mereka biasanya hanya mengesahkan sambungan fail, tetapi tidak mengesahkan kandungan dan jenis fail. Penyerang boleh mengubah suai sambungan fail atau menyamarkan fail untuk memintas mekanisme pengesahan. Setelah fail ini diterima dan disimpan oleh pelayan, penyerang boleh melaksanakan kod hasad dengan mengakses fail yang dimuat naik.

Berikut ialah contoh muat naik fail mudah:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class FileUploadServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if (isMultipart) {
            try {
                DiskFileItemFactory factory = new DiskFileItemFactory();
                ServletFileUpload upload = new ServletFileUpload(factory);
                List<FileItem> items = upload.parseRequest(request);
                for (FileItem item : items) {
                    if (!item.isFormField()) {
                        String fileName = item.getName();
                        File uploadedFile = new File("upload/" + fileName);
                        item.write(uploadedFile);
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
Salin selepas log masuk

Dalam contoh di atas, kami menggunakan perpustakaan Apache Commons FileUpload untuk melaksanakan muat naik fail. Walau bagaimanapun, kod ini tidak mengesahkan jenis dan kandungan fail yang dimuat naik, membenarkan penyerang memuat naik fail berniat jahat.

Kaedah untuk mencegah kelemahan muat naik fail berniat jahat adalah seperti berikut:

  1. Lakukan pengesahan ketat fail yang dimuat naik, termasuk jenis fail dan kandungan.
  2. Gunakan nama fail yang dijana secara rawak untuk mengelakkan penyerang meneka nama fail.
  3. Simpan fail yang dimuat naik dalam direktori akar bukan Web untuk menghalang akses terus.

Kesimpulan:
Kerentanan penyahserialisasian dan kelemahan muat naik fail berniat jahat ialah dua risiko keselamatan biasa dalam program Java. Dengan mengukuhkan pengesahan proses penyahserikatan dan proses muat naik fail, kami boleh menghalang kelemahan ini dengan berkesan. Pembangun harus sentiasa memberi perhatian kepada isu keselamatan siber dan mengemas kini pengetahuan mereka dengan kerap untuk memastikan kod dan pengguna mereka selamat.

Atas ialah kandungan terperinci Penyahserikatan dan pencegahan kerentanan muat naik fail berniat jahat di Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pengekodan selamat PHP: menghalang deserialisasi dan kelemahan suntikan arahan Pengekodan selamat PHP: menghalang deserialisasi dan kelemahan suntikan arahan Jun 29, 2023 pm 11:04 PM

Amalan Pengekodan Selamat PHP: Mencegah Deserialisasi dan Kerentanan Suntikan Perintah Dengan perkembangan pesat Internet, aplikasi web menjadi semakin biasa dalam kehidupan kita. Walau bagaimanapun, risiko keselamatan yang datang dengannya menjadi semakin serius. Dalam pembangunan PHP, kelemahan penyahserilangan dan suntikan arahan adalah kelemahan keselamatan yang biasa Artikel ini akan memperkenalkan beberapa amalan terbaik untuk mempertahankan daripada kelemahan ini. 1. Kerentanan Penyahserikatan Penyahserikatan ialah proses menukar struktur data kepada format yang boleh dipindahkan atau disimpan. Dalam PHP kita boleh menggunakan serialize()

Fail PHP mengandungi kelemahan dan penjelasan terperinci tentang kaedah pencegahan Fail PHP mengandungi kelemahan dan penjelasan terperinci tentang kaedah pencegahan Jun 08, 2023 am 11:03 AM

Penjelasan terperinci tentang kelemahan kemasukan fail PHP dan kaedah pencegahan Dalam aplikasi WEB, fungsi kemasukan fail adalah fungsi yang sangat biasa. Walau bagaimanapun, kelemahan pemasukan fail boleh berlaku jika parameter yang dimasukkan pengguna tidak dikendalikan dengan berhati-hati. Kerentanan ini boleh membenarkan penyerang untuk memuat naik kod PHP dan memasukkannya ke dalam aplikasi, dengan itu mendapat kawalan ke atas pelayan. Oleh itu, adalah sangat perlu untuk mempunyai pemahaman yang mendalam tentang punca dan kaedah pencegahan kelemahan kemasukan fail PHP. Punca kelemahan kemasukan fail PHP Kelemahan kemasukan fail PHP biasanya berkaitan dengan dua sebab berikut:

Ciri bahasa Golang didedahkan: pengekodan selamat dan pencegahan kerentanan Ciri bahasa Golang didedahkan: pengekodan selamat dan pencegahan kerentanan Jul 17, 2023 am 11:21 AM

Ciri bahasa Golang didedahkan: pengekodan selamat dan pencegahan kerentanan Dalam proses pembangunan perisian moden, keselamatan sentiasa menjadi tugas yang penting. Pengekodan selamat dan pencegahan kerentanan adalah salah satu langkah utama dalam melindungi sistem perisian daripada serangan berniat jahat. Sebagai bahasa pengaturcaraan moden, Golang mempunyai banyak ciri dan alatan yang boleh membantu pembangun menulis kod selamat dengan lebih baik. Artikel ini akan mendedahkan beberapa ciri keselamatan bahasa Golang dan menggunakan contoh kod untuk membantu pembaca memahami cara mengelakkan beberapa kebocoran keselamatan biasa semasa proses pembangunan.

Pertahanan Pelayan Linux: Lindungi antara muka web daripada serangan muat naik fail berniat jahat. Pertahanan Pelayan Linux: Lindungi antara muka web daripada serangan muat naik fail berniat jahat. Sep 09, 2023 am 09:06 AM

Pertahanan Pelayan Linux: Lindungi Antara Muka Web daripada Serangan Muat Naik Fail Berniat jahat Dalam beberapa tahun kebelakangan ini, dengan populariti dan perkembangan Internet, penggunaan aplikasi Web telah menjadi semakin meluas. Walau bagaimanapun, bersama-sama dengannya datang pelbagai ancaman keselamatan, salah satunya adalah serangan muat naik fail berniat jahat. Serangan muat naik fail berniat jahat merujuk kepada penyerang yang memuat naik fail yang mengandungi kod hasad ke pelayan untuk mendapatkan kebenaran pelayan atau menyebarkan kandungan berniat jahat. Untuk melindungi antara muka web daripada serangan muat naik fail berniat jahat, kami boleh mengambil beberapa langkah pertahanan yang berkesan. akan diperkenalkan di bawah

Nota Pembangunan Laravel: Kerentanan Keselamatan dan Langkah-langkah Pencegahan Nota Pembangunan Laravel: Kerentanan Keselamatan dan Langkah-langkah Pencegahan Nov 22, 2023 pm 03:18 PM

Nota Pembangunan Laravel: Kerentanan Keselamatan dan Langkah Berjaga-jaga Dengan perkembangan pesat Internet, pembangunan aplikasi web menjadi semakin penting. Sebagai rangka kerja pembangunan PHP yang popular, Laravel telah mendapat perhatian yang meluas untuk prestasi cemerlang dan kemudahan penggunaannya. Walau bagaimanapun, semakin banyak isu keselamatan menyusul. Artikel ini akan menumpukan pada kelemahan keselamatan dalam pembangunan Laravel dan menyediakan beberapa langkah pencegahan. Kerentanan Suntikan SQL Suntikan SQL ialah masalah keselamatan aplikasi web yang biasa. menyerang

Pembelajaran Golang Kerentanan dan Pencegahan Keselamatan Web Biasa Pembelajaran Golang Kerentanan dan Pencegahan Keselamatan Web Biasa Jun 24, 2023 am 11:33 AM

Golang ialah bahasa pengaturcaraan yang cekap dan boleh dipercayai yang digunakan secara meluas dalam bidang pembangunan web. Walau bagaimanapun, apabila isu keselamatan rangkaian menjadi semakin teruk, isu keselamatan aplikasi Web menjadi semakin ketara. Artikel ini akan memperkenalkan kelemahan keselamatan biasa dalam pembangunan web dan cara menggunakan Golang untuk mencegah kelemahan ini. 1. Serangan skrip silang tapak (XSS) Dalam pembangunan web, XSS ialah kelemahan yang paling biasa. Penyerang menyuntik skrip JavaScript ke dalam halaman web untuk mendapatkan maklumat sensitif pengguna dan melaksanakannya

Cara menggunakan Nginx untuk mengelakkan kerentanan HTTP/2 Cara menggunakan Nginx untuk mengelakkan kerentanan HTTP/2 Jun 10, 2023 am 11:51 AM

Dengan pembangunan aplikasi web, Nginx telah menjadi pelayan pilihan ramai pembangun dan pentadbir web. Ia mengendalikan protokol pengangkutan dengan cekap dan menyediakan perkhidmatan yang selamat. Walau bagaimanapun, kelemahan keselamatan yang dipanggil kerentanan HTTP/2 telah ditemui baru-baru ini, yang menimbulkan ancaman kepada aplikasi web. Bagaimana untuk menggunakan Nginx untuk mengelakkan kerentanan seperti ini? Mari kita ketahui bersama di bawah. Pengenalan kepada kerentanan HTTP/2 Mula-mula, mari kita fahami apakah itu kerentanan HTTP/2? Malah, kelemahan ini disebabkan oleh HTTP/

Penyahserikatan dan pencegahan kerentanan muat naik fail berniat jahat di Java Penyahserikatan dan pencegahan kerentanan muat naik fail berniat jahat di Java Aug 09, 2023 pm 02:01 PM

Pengenalan untuk mencegah penyahserilan dan kelemahan muat naik fail berniat jahat di Java: Dengan pembangunan Internet, isu keselamatan rangkaian telah menjadi semakin ketara Beberapa serangan kerentanan yang biasa ialah kelemahan penyahserilan dan kelemahan muat naik fail berniat jahat. Artikel ini akan menumpukan pada prinsip kedua-dua kelemahan ini dan cara mencegahnya, serta menyediakan beberapa contoh kod. 1. Prinsip Kerentanan Penyahserikatan Di Jawa, pensirilan dan penyahseriiran boleh digunakan untuk mencapai penyimpanan objek yang berterusan. Pensirian ialah proses menukar objek kepada aliran bait, manakala penyahserikatan ialah proses menukar aliran bait kembali kepada objek

See all articles