Pengembangan Situs Web - Keamanan

Mengamankan laman web Anda sama pentingnya dengan mengembangkannya, karena ancaman apa pun yang dapat membahayakan keamanan dapat merusak reputasi bisnis Anda, merusak Anda secara finansial (dengan mencuri simpanan online Anda), merusak klien yang mengunjungi situs web Anda, dll.

Sesuai pakar keamanan, mereka akan menyarankan untuk melakukan pemeriksaan keamanan situs web berdasarkan OWASP TOP 10, yang merupakan dokumen kesadaran yang kuat untuk keamanan aplikasi web. OWASP Top 10 mewakili konsensus luas tentang apa kelemahan keamanan aplikasi web yang paling kritis.

Injeksi SQL

Cacat injeksi, seperti injeksi SQL, OS, dan LDAP terjadi saat data tidak tepercaya dikirim ke penerjemah sebagai bagian dari perintah atau kueri. Data musuh penyerang dapat mengelabui penerjemah agar menjalankan perintah yang tidak diinginkan atau mengakses data tanpa otorisasi yang tepat.

Solution - Untuk mengamankan halaman web Anda dari iSQL, Anda harus memvalidasi input dan simbol pemfilteran.

Otentikasi Rusak dan Manajemen Sesi

Fungsi aplikasi yang terkait dengan otentikasi dan manajemen sesi sering tidak diterapkan dengan benar, yang memungkinkan penyerang untuk menyusupi kata sandi, kunci, token sesi atau bahkan untuk mengeksploitasi kelemahan implementasi lainnya untuk mengasumsikan identitas pengguna lain.

Solution - Untuk mengamankan situs Anda dari kekurangan ini, Anda harus membuat cookie dan sesi dengan waktu kedaluwarsa.

Cross-Site Scripting (XSS)

Cacat XSS terjadi setiap kali aplikasi mengambil data yang tidak tepercaya dan mengirimkannya ke browser web tanpa validasi atau pelolosan yang tepat. XSS memungkinkan penyerang untuk mengeksekusi skrip di browser korban, yang kemudian dapat membajak sesi pengguna, merusak situs web, atau mengarahkan pengguna ke situs berbahaya.

Solution - Perlindungan dari ini berada di jalur yang sama seperti untuk iSQL.

Referensi Objek Langsung Tidak Aman

Referensi objek langsung terjadi saat pengembang mengekspos referensi ke objek implementasi internal, seperti file, direktori, atau kunci database. Tanpa pemeriksaan kontrol akses atau perlindungan lainnya, penyerang dapat memanipulasi referensi ini untuk mengakses data yang tidak sah.

Solution - Anda harus menerapkan mekanisme perlindungan khusus seperti kata sandi untuk melindungi file tersebut.

Kesalahan Konfigurasi Keamanan

Keamanan yang baik membutuhkan konfigurasi yang aman yang ditentukan dan digunakan untuk aplikasi, kerangka kerja, server aplikasi, server web, server basis data, dan platform. Pengaturan aman harus ditentukan, diterapkan dan dipelihara, karena default seringkali tidak aman.

Solution - Software harus selalu up to date.

Keterpaparan Data Sensitif

Banyak aplikasi web tidak melindungi data sensitif dengan benar, seperti kartu kredit, nomor pajak, dan kredensial otentikasi. Penyerang dapat mencuri atau mengubah data yang dilindungi dengan lemah tersebut untuk melakukan penipuan kartu kredit, pencurian identitas, atau kejahatan lainnya.

Solution - Data sensitif membutuhkan perlindungan ekstra seperti enkripsi saat diam atau saat transit, serta tindakan pencegahan khusus saat dipertukarkan dengan browser.

Kontrol Akses Tingkat Fungsi Hilang

Sebagian besar aplikasi web memverifikasi hak akses tingkat fungsi sebelum membuat fungsionalitas tersebut terlihat di UI. Namun, aplikasi perlu melakukan pemeriksaan kontrol akses yang sama di server saat setiap fungsi diakses. Jika permintaan tidak diverifikasi, penyerang akan dapat memalsukan permintaan untuk mengakses fungsionalitas tanpa otorisasi yang tepat.

Solution - Anda harus memeriksa tingkat otentikasi.

Pemalsuan Permintaan Lintas Situs (CSRF)

Serangan CSRF memaksa browser korban yang masuk untuk mengirim permintaan HTTP palsu, termasuk cookie sesi korban dan informasi otentikasi lain yang secara otomatis disertakan, ke aplikasi web yang rentan. Hal ini memungkinkan penyerang untuk memaksa browser korban untuk membuat permintaan yang menurut aplikasi rentan adalah permintaan yang sah dari korban.

Solution - Pencegahan yang paling umum digunakan adalah melampirkan beberapa token berbasis tantangan yang tidak dapat diprediksi ke setiap permintaan yang berasal dari situs web dan mengaitkannya dengan sesi pengguna.

Menggunakan Komponen dengan Kerentanan yang Diketahui

Komponen, seperti perpustakaan, kerangka kerja, dan modul perangkat lunak lainnya hampir selalu berjalan dengan hak penuh. Jika komponen yang rentan dieksploitasi, serangan semacam itu dapat memfasilitasi kehilangan data yang serius atau pengambilalihan server. Aplikasi yang menggunakan komponen dengan kerentanan yang diketahui dapat merusak pertahanan aplikasi dan memungkinkan berbagai kemungkinan serangan dan dampak.

Solution - Periksa apakah versi komponen itu memiliki kerentanan dan coba hindari atau ubah dengan versi lain.

Pengalihan dan Penerusan Tidak Tervalidasi

Aplikasi web sering kali mengarahkan dan meneruskan pengguna ke halaman dan situs web lain. Aplikasi ini menggunakan data yang tidak dipercaya untuk menentukan halaman tujuan. Tanpa validasi yang tepat, penyerang dapat mengarahkan korban ke situs phishing atau malware atau menggunakan penerusan untuk mengakses halaman yang tidak sah.

Solution - Selalu validasi URL.

Protokol yang Digunakan Aman

Ini adalah kasus di mana Anda memiliki paket VPS dan Anda mengelola semuanya sendiri. Ketika layanan diinstal, mereka menggunakan port default. Ini membuat pekerjaan lebih mudah bagi seorang hacker karena dia tahu ke mana harus melihat.

Beberapa port layanan utama yang digunakan dalam hosting situs web diberikan di bawah ini -

  • SSH - port 22
  • FTP - port 21
  • MySQL - port 3306
  • DNS - port 53
  • SMTP - port 25

Perubahan port dari layanan tersebut bervariasi tergantung pada Sistem Operasi dan versinya yang berbeda. Selain itu, Anda harus menginstal firewall. Jika ini adalah OS Linux, kami akan merekomendasikanIPtablesdan memblokir semua port yang tidak dibutuhkan lainnya. Jika OS Anda adalah Windows, Anda dapat menggunakan firewall yang terintegrasi.

Untuk memblokir login brute force di layanan Anda, Anda dapat menggunakan Fail2ban, yang merupakan perangkat lunak berbasis Linux dan memblokir semua alamat IP yang membuat banyak upaya login yang gagal.