Posting ini akan mangulas beberapa aspek atau bagian yang mempengaruhi keamanan web. Pengetahuan kamu mengenai ini akan sangat membantu dalam mempersiapkan kamu untuk membasmi serangan apa pun yang mungkin ditujukan terhadap kamu dari situs web. Berikut ini rangkuman dasar-dasar keamanan web yang wajib kamu tahu. Tanpa penundaan lebih lanjut, ayo kita masuk ke dalamnya.
Dasar-dasar keamanan web yang wajib kamu ketahui
Daftar Isi
1. Dasar-dasar Keamanan Web yang Wajib kamu Ketahui: Injeksi SQL
Definisi SQL Injection
Menurut definisi, injeksi SQL merupakan metode injeksi kode yang mungkin memusnahkan database kamu. Dalam bentuk yang lebih sederhana, injeksi SQL merupakan penempatan kode berbahaya dalam statment SQL, melalui input halaman web.
Karna input pengguna tidak ditilik secara ketat dalam program, pengguna dapat mengirimkan sepotong kode kueri basis data, dan mendapatkan sebagian data yang ingin diketahuinya berdasarkan hasil yang dikembalikan oleh program. Inilah yang disebut SQL Injection.
Analisis Penyebab:
Esensinya merupakan kalau pemeriksaan input tidak cukup. Hal ini pada gilirannya mengakibatkan statment SQL untuk mengeksekusi data ilegal yang dikirimkan oleh pengguna sebagai bagian dari pernyataan itu.
Karna beberapa aplikasi WEB kita menggunakan kerangka kegiatan Jsp JavaBean atau SSH, akan ada statment SQL (atau HQL) langsung yang ditulis dalam kode, dan beberapa SQL diimplementasikan dengan ejaan.
Resiko Terkait dengan SQL Injection:
Blind SQL Catatan: Apabila sistem memblokir pesan kekeliruan rinci, itu merupakan injeksi buta ke penyerang, dan dapat melihat, memodifikasi, atau membersihkan entri dan tabel database.
Bypass otentikasi menggunakan injeksi SQL: Mekanisme otentikasi aplikasi Web dapat dilewati.
Keterangan Tentang Kerentanan Injeksi SQL
- Pertama, ini bukan kerentanan dalam database, juga bukan kerentanan dalam program layanan web atau juru bahasa skrip.
- Kedua, Ini merupakan bug dalam aplikasi itu sendiri dan masalah yang disebabkan oleh pengembangan program situs web.
Bagaimana Mencegah injeksi SQL
- Pertama, jangan pernah percaya masukan pengguna. Untuk memandu input pengguna, kamu dapat memakai ekspresi reguler, atau membatasi panjangnya; mengonversi tanda kutip tunggal dan ganda “-“, dan lainnya.
- Kedua, jangan pernah menggunakan SQL perakitan dinamis. Sebagai gantinya, kamu dapat menggunakan SQL berparameter atau langsung memakai prosedur tersimpan untuk akses kueri data.
- Ketiga, jangan pernah menggunakan koneksi database dengan hak administrator. Gunakan koneksi database terpisah dengan hak istimewa terbatas untuk setiap aplikasi.
- Terlebih lagi. jangan menyimpan data rahasia secara langsung, mengenkripsi, atau mengeluarkan kata sandi dan informasi sensitif.
- Data pengecualian aplikasi harus memberikan beberapa petunjuk mungkin, dan yang terbaik merupakan memakai informasi kesalahan khusus untuk membungkus informasi kesalahan asli.
- Gunakan beberapa alat atau platform jaringan untuk mengetahui injeksi SQL.
2. Kerentanan Scripting Rute Web (XSS)
Definisi
Cross-site Scripting merujuk pada penyerbu kejam yang memasukkan kode HTML beresiko ke dalam laman Web. Saat pengguna menelusuri laman, kode HTML yang disematkan di Web akan dieksekusi, alhasil menggapai tujuan spesial pengguna kejam.
XSS merupakan serangan stagnan, karna stagnan dan tidak mudah dipakai, alhasil banyak orang kerap melupakan bahayanya. Inti dari XSS merupakan menjalankan skrip [Javascript/HTML, dll.]. Semakin kuat kemampuan js penyerang, semakin luar biasa dampak serangannya.
Jenis serangan ini biasanya tidak memunculkan ancaman untuk host situs web itu sendiri. Penyerang menggunakan bahasa khusus untuk menggunakan host situs web sebagai batu loncatan untuk menyerang pengguna situs web.
Terutama Relevan: Cara Mengamankan/Melindungi Ponsel Pintar kamu dari Serangan Virus, Peretas, atau Pencurian
Klasifikasi XSS
XSS persisten, berbeda dengan XSS non-persisten, mengacu pada pengiriman data berbahaya ke server dan output data berbahaya ke halaman melalui aplikasi web.
XSS persisten sebagian besar muncul di kotak surat Web, sistem papan buletin, komunitas, dan lainnya. dari database Halaman normal untuk membaca data( misalnya, posting BBS mungkin berisi kode berbahaya)
XSS non-persistent (Non-persistent), atau refleksi, merujuk pada kerentanan skrip rute situs yang wajib dipicu oleh browser untuk mengirimkan data beresiko dalam parameter setiap kali.
Cara Mencegah Serangan Scripting Rute Situs XSS
- Prinsip: Jangan percaya data yang dimasukkan oleh pengguna Catatan: Kode serangan mungkin tidak ada di
- Kedua, tandai cookie penting sebagai HTTP saja, sehingga dokumen. statment cookie dalam Javascript tidak dapat mendapatkan cooUkie.
- Hanya izinkan pengguna memasukkan data yang kita harapkan. Misalnya: di kotak teks usia, hanya pengguna yang diizinkan memasukkan nilai, dan karakter tidak hanya itu, angka disaring.
- Filter atau hapus tag HTML khusus. Misalnya: ,,,“ untuk.
- Filter tag untuk acara JavaScript. Misalnya, “οnclick=”, “onfocus”, dan lain-lain.
3. Pemalsuan Permintaan Rute Situs XSRF
Proses Serangan XSRF/CSRF
Seperti yang dapat diamati dari gambar di atas, untuk menyelesaikan serangan CSRF, korban mesti menuntaskan 2 tahap secara berurutan:
- Masuk ke situs web A tepercaya dan untuk cookie secara lokal.
- Kunjungi situs web berbahaya B tanpa keluar dari A.
Melihat ini, kamu mungkin mengatakan: “Apabila aku tidak memenuhi salah satu dari 2 syarat di atas, aku tidak akan diserang oleh CSRF”. Ya, itu sesuai, namun kamu tidak dapat menjamin kalau keadaan berikut tidak akan terjadi:
- Kamu tidak dapat menjamin jika setelah masuk ke suatu situs web, kamu tidak akan membuka halaman tab dan mengunjungi situs web lain.
- Kedua, kamu tidak dapat menjamin kalau sehabis kamu menutup browser, cookie lokal kamu akan lekas basi dan sesi terakhir kamu sudah selesai. (Faktanya, menutup browser tidak dapat mengakhiri sesi, namun mayoritas orang secara keliru percaya kalau menutup browser serupa dengan keluar atau mengakhiri sesi…)
- Tidak hanya itu, apa yang diucap situs web penyerang pada gambar di atas mungkin merupakan situs web tepercaya yang mempunyai kerentanan lain dan kerap didatangi orang.
Perbedaan antara CSRF dan XSS
XSS: Skrip berbahaya digaungkan ke browser pengguna untuk dieksekusi melalui server.
CSRF di sisi lain dapat berbentuk skrip berbahaya, atau mungkin tag HTML berbahaya; itu mungkin digemakan oleh server, (atau mungkin tidak diteruskan sama sekali) mengakibatkan browser memulai permintaan ofensif.
Kiat mengenai Cara Mencegah Pemalsuan Permintaan Rute Situs CSRF
- Untuk situs web, mengalihkan metode otorisasi persisten (seperti cookie atau otorisasi HTTP) ke metode otorisasi instan (bidang tersembunyi disediakan di setiap formulir).
- Cookie “pengiriman ganda”. Tata cara ini hanya berfungsi untuk permohonan Ajax, namun dapat dipakai sebagai tata cara koreksi internasional tanpa mengganti banyak formulir. Apabila cookie legal dibaca oleh kode JavaScript terlebih dulu, maka aturan lintas domain yang membatasi akan dipraktikkan. Apa yang kamu maksud dengan membatasi aturan lintas domain? Aturan pemisahan rute domain yaitu: apabila server perlu melibatkan permintaan untuk mengotorisasi cookie di badan atau URL permintaan Posting, sehingga permintaan ini mesti berasal dari domain tepercaya karna domain lain tidak dapat membaca cookie dari daerah tepercaya.
- Gunakan Pos alih-alih mendapatkan. Tata cara Post tidak akan meninggalkan ekor data di server web dan log server proxy, namun tata cara Get akan meninggalkan jejak data.
4. Kerentanan Unggah File: Kesalahan Verifikasi Umum
- Masalah keamanan web ini memungkinkan pengunggahan file yang dapat dieksekusi
- Gunakan JS klien untuk memverifikasi tipe file yang diunggah
- Gunakan daftar hitam untuk membatasi tipe file unggahan
- Nama file/sebutan direktori penyimpanan dapat disesuaikan
- Ini memungkinkan penanganan karakter khusus yang tidak pas dalam nama file
Solusi kerentanan pengunggahan file:
- Pertama-tama, kreator enkode perlu mengontrol kode halaman unggah dengan ketat, terutama saat menyimpan file. kamu perlu mengecek kemungkinan karakter tidak normal, seperti ../,.., karakter kosong, dll.
- Kedua, untuk mengecek ekstensi file, butuh untuk mengadopsi tanda centang seperti “izinkan jpg, gif…” alih-alih centang seperti “tidak izinkan asp …”;
5. “File Berisi Kerentanan”
File berisi kerentanan. Apabila input pengguna klien diizinkan untuk mengontrol file yang disertakan secara dinamis di sisi server, itu akan mengarah pada eksekusi kode berbahaya dan pengungkapan informasi sensitif.
Solusi Eksploitasi Kerentanan File Memiliki:
- Periksa dengan ketat apakah variabel telah diinisialisasi.
Dianjurkan untuk berasumsi kalau seluruh input mencurigakan, dan coba lakukan pengecekan ketat pada seluruh alamat file yang mungkin disertakan dalam pengiriman input, termasuk file lokal server dan file jarak jauh, dan karakter lompatan direktori seperti../ tidak diizinkan dalam parameter.
- Cek dengan ketat apakah parameter dalam fungsi include dikendalikan oleh dunia luar.
Jangan hanya memverifikasi dan menyaring data di sisi klien, langkah pemfilteran utama dilakukan di sisi server.
- Terakhir, uji seluruh ancaman yang diketahui sebelum merilis aplikasi.
6. Serangan Keamanan Cookie
Cookie pengguna dapat dicuri oleh penyerang karna alibi tertentu, dan penyerang dapat memakai cookie yang dicuri untuk masuk ke situs web pengguna secara langsung sebagai pengguna.
7. Serangan Traversal Direktori
Mengacu pada penyerang yang memakai kerentanan aplikasi untuk mengakses data atau direktori file di luar aplikasi yang legal, yang menyebabkan kebocoran atau hambatan data.
Yang sangat umum yaitu memakai mekanisme “titik ganda atas nama direktori induk” untuk menyerang. Misalnya: ../../../../../../etc/passwd”
Server web terutama menyediakan 2 tingkat mekanisme keamanan
Akses direktori root: Direktori spesial dalam sistem file server berfungsi selaku direktori root situs web. Ini kerap menjadi batasan, dan pengguna tidak dapat mengakses konten apa pun yang terdapat di atas direktori ini.
Access control list (ACL): Catatan yang dipakai oleh administrator server Web untuk memastikan pengguna atau tim pengguna apa yang dapat mengakses, memodifikasi, dan melaksanakan file khusus di server.
8. Serangan Denial of Service Terdistribusi
Serangan DDoS memakai celah yang melekat dalam protokol jaringan untuk memalsukan permintaan layanan yang wajar. Ini menghabiskan bandwidth jaringan terbatas atau menempati terlalu banyak sumber daya layanan alhasil jaringan atau layanan tidak dapat menjawab permintaan normal pengguna. Serangan ini pada akhirnya akan menimbulkan layanan jaringan lumpuh.
Jenis DDoS
- Jenis kehabisan sumber daya termasuk UDP DNS Query Flood, Connection Flood, HTTP Get Flood, dan lain-lain.
- Jenis lalu lintas yaitu: syn_flood, ack_flood, rst_flood, udp_flood, icmp_flood, dan lain-lain.
9. Referensi langsung ke objek yang tidak aman/Referensi Objek Langsung Tidak Aman
IDOR terjadi kala developer menguraikan referensi ke objek situs web yang disebarkan secara internal terhadap pengguna, seperti file, direktori, kunci basis data, dan lain-lain. Apabila sistem tidak mempunyai pengecekan pengawasan akses atau tindakan perlindungan lainnya, penyerang dapat menempa referensi untuk mencapai akses data yang ilegal.
Prinsip Rujukan Objek Langsung Tidak Aman
Prinsip serangan dasar merupakan menebak referensi objek lain yang tidak legal berlandaskan referensi objek yang ada. Serangan ini dapat terjadi pada saat alamat situs web atau parameter lain berisi referensi seperti file, direktori, catatan basis data, atau kata kunci.