Rumah  >  Artikel  >  Java  >  Cegah serangan pemalsuan permintaan merentas tapak di Jawa

Cegah serangan pemalsuan permintaan merentas tapak di Jawa

WBOY
WBOYasal
2023-08-07 08:51:251629semak imbas

Cegah serangan pemalsuan permintaan merentas tapak di Java

Dalam beberapa tahun kebelakangan ini, dengan perkembangan pesat Internet, isu keselamatan rangkaian telah menjadi semakin ketara. Salah satu daripadanya ialah serangan Pemalsuan Permintaan Silang Tapak (CSRF), iaitu kaedah serangan yang menggunakan identiti log masuk pengguna untuk memulakan permintaan berniat jahat. Artikel ini akan memperkenalkan cara untuk menghalang serangan pemalsuan permintaan merentas tapak dalam Java dan memberikan contoh kod yang sepadan.

  1. Apakah serangan pemalsuan permintaan merentas tapak?
    Serangan pemalsuan permintaan merentas tapak merujuk kepada penyerang yang menipu pengguna untuk melakukan operasi tertentu tanpa kebenaran dengan menyamarkan permintaan yang sah. Penyerang biasanya menghantar pautan berniat jahat atau permintaan yang menyamar sebagai pautan biasa kepada pengguna melalui e-mel, rangkaian sosial atau tapak web pancingan data Apabila pengguna mengklik pada pautan atau permintaan itu dilaksanakan, penyerang boleh menggunakan status log masuk pengguna untuk melaksanakan operasi Sepadan. . Kami boleh menentukan sumber permintaan dengan menyemak medan pengepala Perujuk permintaan. Jika permintaan datang daripada sumber yang tidak dijangka, permintaan itu ditolak.
  2. @RequestMapping(value="/example", method=RequestMethod.POST)
    public String handleExamplePost(HttpServletRequest request) {
        String referer = request.getHeader("Referer");
        if (referer != null && referer.contains("example.com")) {
            // 正常处理请求
        } else {
            // 拒绝请求
        }
    }
  3. Perlu diingatkan bahawa sesetengah pelayar mungkin mengehadkan penghantaran Perujuk, jadi kaedah ini tidak boleh dipercayai sepenuhnya.
  4. 2.2 Tambah pengesahan token
Pengesahan token ialah kaedah biasa untuk mencegah serangan CSRF. Hasilkan token unik pada bahagian pelayan dan benamkan token ke dalam sesi pengguna atau parameter permintaan. Semasa memproses permintaan, pelayan menyemak sama ada permintaan itu mengandungi token yang betul dan hanya melakukan operasi yang sepadan jika pengesahan token lulus.

// 生成令牌
String token = UUID.randomUUID().toString();

// 存储令牌到用户会话或请求参数中
session.setAttribute("csrfToken", token);
model.addAttribute("csrfToken", token);

// 处理请求时进行令牌验证
@RequestMapping(value="/example", method=RequestMethod.POST)
public String handleExamplePost(HttpServletRequest request, @RequestParam("csrfToken") String csrfToken) {
    String sessionToken = (String) session.getAttribute("csrfToken");
    if (sessionToken == null || !sessionToken.equals(csrfToken)) {
        // 拒绝请求
    } else {
        // 正常处理请求
    }
}

2.3 Dayakan atribut SameSite

Menetapkan atribut SameSite bagi Kuki boleh menghalang beberapa serangan CSRF dengan berkesan. Atribut SameSite mengehadkan kuki untuk dihantar di bawah tapak yang sama, dengan itu menghalang serangan pemalsuan permintaan merentas tapak. Ciri ini boleh didayakan dalam Java dengan menetapkan sifat SameSite Cookie kepada Strict atau Lax.

Cookie cookie = new Cookie("exampleCookie", "exampleValue");
cookie.setSameSite(Cookie.SameSite.STRICT);
response.addCookie(cookie);

Perlu diambil perhatian bahawa atribut SameSite mungkin tidak disokong dalam versi pelayar yang lebih lama.


Kesimpulan

Serangan pemalsuan permintaan merentas tapak ialah masalah keselamatan rangkaian biasa, tetapi kami boleh menghalang serangan ini dengan mengesahkan sumber permintaan, menambah pengesahan token dan mendayakan atribut SameSite. Semasa membangunkan aplikasi Java, kita harus sedar sepenuhnya tentang ancaman serangan CSRF dan mengambil langkah perlindungan yang sesuai.

Di atas ialah beberapa kaedah dan contoh kod untuk menghalang serangan pemalsuan permintaan merentas tapak di Java. Saya harap artikel ini dapat membantu pembaca mencegah serangan CSRF dengan lebih baik dan memastikan keselamatan aplikasi rangkaian.

Atas ialah kandungan terperinci Cegah serangan pemalsuan permintaan merentas tapak di Jawa. 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