Rumah  >  Artikel  >  Java  >  Bagaimana rangka kerja java menghalang serangan skrip merentas tapak

Bagaimana rangka kerja java menghalang serangan skrip merentas tapak

WBOY
WBOYasal
2024-06-01 21:32:01488semak imbas

Rangka kerja Java menghalang serangan kemasukan skrip merentas tapak (XSSI) melalui strategi berikut: Pengesahan input: Gunakan ungkapan biasa atau senarai putih untuk mengesahkan input pengguna dan menyekat skrip berniat jahat. Keluaran melarikan diri: Melarikan diri input pengguna menggunakan entiti HTML atau aksara melarikan diri sebelum mengeluarkannya, menghalang penyemak imbas daripada mentafsirkannya sebagai kod. Tetapan pengepala HTTP: Tetapkan pengepala HTTP seperti X-XSS-Protection dan Content-Security-Policy untuk meningkatkan keselamatan.

Bagaimana rangka kerja java menghalang serangan skrip merentas tapak

Bagaimana rangka kerja Java menghalang skrip lintas tapak termasuk serangan (XSSI)

foreword

cross-site Scripting termasuk serangan (XSSI) adalah ancaman keselamatan siber yang serius yang membolehkan penyerang melaksanakan kod javascript sewenang-wenangnya di dalam pelayar web anda. Rangka kerja Java boleh menghalang serangan XSSi melalui strategi berikut:

Pengesahan Input

Dengan menggunakan ungkapan biasa atau senarai putih untuk mengesahkan input pengguna, skrip hasad boleh disekat dengan berkesan. Contohnya:

String input = request.getParameter("input");
if (!input.matches("[a-zA-Z0-9]+")) {
    throw new IllegalArgumentException("Invalid input");
}

Output escaping

Input pengguna boleh dilepaskan menggunakan entiti HTML atau aksara melarikan diri sebelum ia dikeluarkan ke halaman web. Ini akan menghalang penyemak imbas daripada mentafsir input sebagai kod:

String escapedInput = HtmlUtils.htmlEscape(input);

Tetapan pengepala HTTP

Rangka kerja boleh menetapkan pengepala HTTP berikut untuk meningkatkan keselamatan:

  • X-XSS-Protection: Pengepala ini memaklumkan penyemak imbas kira-kira salib Tapak ini meminta pemeriksaan tambahan.
  • Polisi-Keselamatan-Kandungan: Pengepala ini menentukan sumber sumber yang dibenarkan untuk dimuatkan.

Kes praktikal

Berikut ialah contoh menggunakan rangka kerja Spring MVC untuk mencegah serangan XSSi:

Kod:

@PostMapping("/submit")
public String submit(@RequestParam String input) {
    // 输入验证
    if (!input.matches("[a-zA-Z0-9]+")) {
        throw new IllegalArgumentException("Invalid input");
    }

    // 输出转义
    String escapedInput = HtmlUtils.htmlEscape(input);

    // 设置 HTTP 头
    HttpServletResponse response = request.getResponse();
    response.addHeader("X-XSS-Protection", "1; mode=block");
    response.addHeader("Content-Security-Policy", "default-src 'self'");

    // 将转义后的输入显示在页面上
    return "result.jsp?input=" + escapedInput;
}

Atas ialah kandungan terperinci Bagaimana rangka kerja java menghalang serangan skrip merentas tapak. 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