Rumah >hujung hadapan web >tutorial js >Ketahui tentang keselamatan dan pertahanan dalam JavaScript

Ketahui tentang keselamatan dan pertahanan dalam JavaScript

PHPz
PHPzasal
2023-11-03 10:36:521139semak imbas

Ketahui tentang keselamatan dan pertahanan dalam JavaScript

JavaScript ialah bahasa skrip yang digunakan secara meluas dalam pembangunan web, yang boleh menjadikan halaman web lebih interaktif dan dinamik. Walau bagaimanapun, dengan tepat kerana fungsi dan fleksibiliti yang berkuasa, JavaScript juga mempunyai beberapa risiko keselamatan. Artikel ini akan memperkenalkan beberapa isu keselamatan dalam JavaScript, serta langkah pertahanan yang sepadan, dan menyediakan beberapa contoh kod khusus untuk digambarkan.

  1. Serangan skrip merentas tapak (XSS)
    Serangan skrip merentas tapak merujuk kepada pengguna berniat jahat memasukkan skrip berniat jahat ke dalam halaman web untuk mendapatkan maklumat sensitif pengguna atau mengganggu kandungan halaman web. Untuk mengelakkan serangan XSS, anda boleh menggunakan kaedah berikut:
  2. Pengesahan input: Sahkan data yang dimasukkan oleh pengguna dan tapis aksara khas dan tag HTML.

    function sanitizeInput(input) {
      return input.replace(/[<>]/g, "");
    }
  3. Pengekodan output: Gunakan pengekodan yang sesuai apabila memasukkan data yang dimasukkan pengguna ke dalam halaman web.

    function insertText() {
      var userInput = document.getElementById("input").value;
      var sanitizedInput = sanitizeInput(userInput);
      document.getElementById("output").innerText = sanitizedInput;
    }
  4. Tetapkan Polisi Kandungan-Keselamatan pengepala HTTP: Maklumat pengepala ini boleh mengehadkan pelaksanaan JavaScript dan menghalang suntikan skrip berniat jahat.

    Content-Security-Policy: script-src 'self'
  5. Pemalsuan permintaan merentas tapak (CSRF)
    Pemalsuan permintaan merentas tapak bermaksud penyerang menggunakan identiti log masuk pengguna untuk mendorong pengguna melawat tapak web berniat jahat atau mengklik pautan berniat jahat, dengan itu melancarkan serangan ke atas laman web tanpa pengetahuan pengguna. Berikut adalah beberapa langkah untuk mencegah CSRF:
  6. Sahkan perujuk: Sahkan perujuk yang diminta di bahagian pelayan untuk menentukan sama ada ia adalah sumber yang sah.

    if (referer != 'https://example.com') {
      discardRequest();
    }
  7. Gunakan token CSRF: simpan token yang dijana secara rawak dalam sesi dan tambahkannya sebagai parameter atau pengepala kepada permintaan di mana sahaja permintaan dibuat.

    var token = generateToken();
    var request = new XMLHttpRequest();
    request.open('POST', '/api/update', true);
    request.setRequestHeader('X-CSRF-Token', token);
  8. Tetapkan atribut SameSite: Tetapkan atribut SameSite dalam kuki kepada Strict atau Lax untuk mengehadkannya kepada hanya dihantar dalam tapak yang sama.

    Set-Cookie: sessionID=123; SameSite=Strict;
  9. Pustaka dan tanggungan yang tidak selamat
    Pustaka dan tanggungan pihak ketiga sering digunakan dalam pembangunan JavaScript, tetapi tidak semua perpustakaan selamat dan boleh dipercayai. Menggunakan perpustakaan yang tidak selamat boleh membawa kepada kelemahan dan bahaya keselamatan. Untuk meningkatkan keselamatan kod anda, anda boleh melakukan perkara berikut:
  10. Kemas kini perpustakaan dan tanggungan dengan kerap: Kemas kini versi perpustakaan dan tanggungan pihak ketiga tepat pada masanya untuk mendapatkan tampung keselamatan terkini.

    npm update
  11. Nilai keselamatan perpustakaan: Apabila memilih untuk menggunakan perpustakaan pihak ketiga, anda harus menyemak sama ada perpustakaan itu mengetahui kelemahan keselamatan dan memahami reputasi dan aktiviti penyelenggaranya.

rreeee

Atas ialah kandungan terperinci Ketahui tentang keselamatan dan pertahanan dalam JavaScript. 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