Rumah > Artikel > hujung hadapan web > Adakah javascript selamat?
Javascript selamat. JavaScript ialah bahasa keselamatan Ia tidak membenarkan akses kepada cakera keras tempatan, tidak boleh menyimpan data pada pelayan, tidak membenarkan pengubahsuaian dan pemadaman dokumen rangkaian, dan hanya boleh mencapai penyemakan imbas maklumat atau interaksi dinamik melalui penyemak imbas dengan berkesan mengelakkan kehilangan data.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.
JavaScript (pendek kata "JS") ialah bahasa penskripan sisi klien yang paling popular dan digunakan secara meluas Ia digunakan untuk menambah beberapa kesan dinamik dan fungsi interaktif pada halaman web, dan memainkan peranan penting dalam. bidang pembangunan web.
JavaScript ialah bahasa skrip yang dipacu oleh peristiwa yang boleh bertindak balas kepada input pengguna tanpa menggunakan pelayan web Contohnya, apabila kami melawat halaman web, kami mengklik atau menatal halaman web dengan tetikus tetingkap, JavaScript boleh bertindak balas terus kepada acara ini.
JavaScript tidak bergantung pada sistem pengendalian dan boleh dijalankan dalam penyemak imbas. Oleh itu, selepas skrip JavaScript ditulis, ia boleh dijalankan pada mana-mana sistem, selagi pelayar pada sistem menyokong JavaScript.
JavaScript ialah bahasa keselamatan Ia tidak membenarkan akses kepada pemacu keras tempatan, tidak boleh menyimpan data pada pelayan, tidak membenarkan pengubahsuaian dan pemadaman dokumen rangkaian, dan hanya boleh menyemak imbas maklumat melalui penyemak imbas interaksi dinamik; dengan itu berkesan menghalang kehilangan data.
5 amalan terbaik keselamatan JavaScript yang mudah dilaksanakan
1 Gunakan linter JavaScript
Cara paling mudah dan paling mudah untuk mengelakkan isu keselamatan JavaScript adalah dengan memeriksa kod anda. Linter ialah alat analisis kod statik yang menyemak kod anda untuk kesilapan pengaturcaraan dan gaya, bau kod dan kelemahan keselamatan yang diketahui.
Tiga baris JavaScript yang paling terkenal ialah JSHint, JSLint dan ESLint. Penyunting kod sumber moden, seperti Visual Studio Code dan Atom, turut disertakan dengan keupayaan linting JavaScript yang boleh dipasang.
2. Elakkan menggunakan JavaScript sebaris dan wujudkan dasar keselamatan kandungan
Menggunakan teg skrip sebaris akan menjadikan tapak web atau aplikasi anda lebih terdedah kepada skrip merentas tapak ( XSS) serangan. Anda boleh mengelakkan risiko keselamatan JavaScript ini dengan menambahkan semua skrip, termasuk pengendali acara sebaris (seperti onclick), sebagai fail .js luaran.
Untuk meningkatkan keselamatan, kami juga mengesyorkan agar anda mewujudkan Dasar Keselamatan Kandungan (CSP). Ini ialah lapisan keselamatan dalam komunikasi antara klien dan pelayan yang membolehkan anda menambah peraturan keselamatan kandungan pada pengepala respons HTTP.
Menyediakan CSP yang lebih berkesan adalah lebih mudah jika anda tidak mempunyai sebarang skrip sebaris pada halaman anda. Anda boleh menggunakan arahan skrip-src dan lalai-src untuk menyekat semua skrip sebaris, jadi jika mana-mana skrip sebaris berniat jahat cuba untuk dilaksanakan di tapak anda, ia akan gagal secara automatik.
3. Sahkan input pengguna
Mengesahkan input pengguna pada kedua-dua sisi klien dan pelayan adalah penting untuk mengelakkan suntikan kod berniat jahat.
Borang HTML5 disertakan dengan atribut pengesahan borang terbina dalam seperti yang diperlukan, min, maks, jenis, dsb., membolehkan anda menyemak data pengguna dan mengembalikan mesej ralat tanpa menggunakan sebarang JavaScript pada sisi klien. Anda juga boleh menggunakan atribut HTML corak untuk mengesahkan nilai yang dimasukkan menggunakan ungkapan biasa.
Selain atribut HTML5 ini, penyemak imbas moden juga menyokong API Pengesahan Kekangan, yang membolehkan anda melakukan pengesahan input tersuai menggunakan JavaScript.
Ini ialah API Web yang memanjangkan antara muka JavaScript kepunyaan elemen HTML berbeza yang digunakan dalam borang (seperti HTMLInputElement, HTMLSelectElement dan HTMLButtonElement) dan menyediakan sifat dan kaedah yang berguna untuk kekangan berbeza Semak kesahihan input, laporkan status kesahihan, dan melakukan operasi lain.
4. Melarikan diri atau mengekod input pengguna
Untuk mengelakkan serangan XSS, adalah penting juga untuk melarikan diri atau mengekod data masuk atau tidak selamat. Melarikan diri dan pengekodan ialah dua teknik untuk menukar aksara khas yang mungkin menimbulkan risiko keselamatan kepada bentuk yang selamat.
Semasa pengekodan menambahkan aksara tambahan sebelum aksara yang berpotensi berbahaya, seperti aksara sebelum petikan dalam JavaScript, melarikan diri menukar aksara kepada format yang setara tetapi selamat, seperti aksara > ke > ; HTML.
Sebagai peraturan, anda hendaklah sentiasa mengekod entiti HTML (seperti < dan > aksara) apabila ia datang daripada sumber yang tidak dipercayai. Untuk melarikan diri dari URI dan kod JavaScript, anda boleh menggunakan alat melarikan diri/pengekodan percuma seperti FreeFormatter's JavaScript String Escaper dan URL Encoder/Decoder.
Adalah yang terbaik untuk mengelak daripada menggunakan sifat JavaScript dan kaedah yang mengembalikan rentetan yang tidak dilepaskan. Sebagai contoh, anda boleh menggunakan sifat textContent selamat dan bukannya innerHTML yang menghuraikan kepada HTML (supaya aksara tidak terlepas).
5 Mampatkan, himpunkan dan kaburkan kod JavaScript anda
Akhir sekali, anda boleh menggunakan alatan seperti Webpack dengan lebih banyak ciri keselamatan untuk mengecilkan dan menggabungkan kod anda, menjadikannya lebih sukar untuk penggodam memahami struktur dan logik skrip anda. Sebagai contoh, anda boleh menambah nombor rawak pada setiap skrip yang dimuatkan.
Walaupun mengecilkan dan menghimpunkan skrip sering dianggap sebagai amalan terbaik JavaScript, kekeliruan ialah topik yang kontroversi. Ini kerana ia mengambil masa yang lebih lama untuk penyemak imbas memuatkan skrip yang dikelirukan, yang merendahkan prestasi dan pengalaman pengguna, terutamanya pada tahap kekaburan yang lebih tinggi. Walau bagaimanapun, jika anda masih memutuskan untuk mengelirukan sebahagian atau semua skrip anda, anda boleh menggunakan alatan percuma seperti Obfuscator.io, yang turut mempunyai pemalam untuk alatan popular seperti Webpack, Grunt, Rollup, Netlify dan banyak lagi.
Mengikuti amalan terbaik keselamatan JavaScript ini boleh membantu anda menjadikan skrip anda lebih selamat dan menghalang serangan biasa seperti skrip merentas tapak, pemalsuan permintaan merentas tapak, kelemahan keselamatan pihak ketiga dan banyak lagi.
[Cadangan berkaitan: tutorial video javascript, Video pengaturcaraan asas]
Atas ialah kandungan terperinci Adakah javascript selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!