Sebagai seorang programmer atau pengembang, pentingnya membuat aplikasi yang aman tidak dapat dilebih-lebihkan.
Keamanan perangkat lunak berkaitan dengan pengelolaan serangan berbahaya dengan mengidentifikasi potensi kerentanan dalam perangkat lunak dan mengambil tindakan pencegahan yang diperlukan untuk menjaganya.
Perangkat lunak tidak pernah bisa 100% aman karena pengembang dapat mengabaikan bug, membuat bug baru dalam upaya untuk memperbaiki kasus yang ada, atau membuat kerentanan baru melalui pembaruan.
Namun, ada dua praktik utama yang dapat diterapkan oleh semua pengembang perangkat lunak untuk memastikan bahwa mereka membuat kode aman penulisan perangkat lunak yang aman sejak awal, dan menguji kode Anda secara efisien.
Bagaimana Menulis Kode Aman
Menulis kode aman bermuara pada penanganan kesalahan satu hal. Jika Anda dapat mengantisipasi setiap potensi nilai yang mungkin diberikan pengguna pada aplikasi Anda dan membuat respons dalam program Anda untuk nilai tersebut, maka Anda menulis kode aman.
Ini jauh lebih sederhana daripada yang mungkin Anda pikirkan karena semua pengembang yang baik tahu hampir semua tentang aplikasi yang mereka kembangkan. Oleh karena itu, Anda harus mengetahui setiap nilai yang diperlukan aplikasi Anda untuk menjalankan tugas (nilai yang disetujui) dan memahami bahwa setiap nilai yang mungkin ada adalah nilai yang tidak disetujui.
Menulis Kode Aman
Misalkan Anda ingin membuat program yang hanya menerima dua nilai integer dari pengguna dan melakukan operasi penambahan padanya. Dengan satu kalimat itu, seperti pengembang yang baik, Anda sekarang tahu segalanya tentang aplikasi Anda. Anda tahu semua nilai yang akan diterima program ini (nilai integer) dan Anda tahu tugas yang akan diselesaikan program ini (operasi penjumlahan).
Membuat Program di Contoh Java
import java.util. Pemindai;
kelas umum Utama {
// Fungsi utama yang menjalankan program dan mengumpulkan dua nilai
public static void main (String [] args) {
System.out.println ("Harap masukkan dua nilai integer Anda:");
int nilai1;
nilai int2;
Input pemindai = Pemindai baru (System.in);
nilai1 = input.nextInt ();
nilai2 = input.nextInt ();
penambahan (nilai1, nilai2);
input.close ();
}
// fungsi yang mengumpulkan dua nilai dan menampilkan jumlahnya
penambahan ruang kosong statis pribadi (nilai int1, nilai int2) {
int sum;
jumlah = nilai1 + nilai2;
System.out.println ("Jumlah dari dua nilai integer yang Anda masukkan:" + jumlah);
}
}
Kode di atas menghasilkan aplikasi yang sesuai dengan persyaratan secara tepat. Saat dieksekusi, ini akan menghasilkan baris berikut di konsol:
Harap masukkan dua nilai bilangan bulat Anda:
Aplikasi kemudian akan tetap berhenti sampai pengguna memasukkan dua nilai integer di konsol (itu berarti mengetik nilai pertama, menekan tombol enter, dan mengulang).
Jika pengguna memasukkan nilai 5 dan 4 di konsol, program akan menghasilkan keluaran sebagai berikut:
Jumlah dari dua nilai bilangan bulat yang Anda masukkan: 9
Ini bagus; program melakukan apa yang seharusnya dilakukannya. Namun, jika pengguna jahat datang dan memasukkan nilai non-integer, seperti "g", ke dalam aplikasi Anda akan ada masalah. Ini karena tidak ada kode dalam aplikasi yang melindungi dari nilai yang tidak disetujui.
Pada titik ini aplikasi Anda akan macet, membuat gerbang potensial ke dalam aplikasi Anda untuk peretas yang tahu persis apa yang harus dilakukan selanjutnya.
Mengamankan Contoh Program Anda
import java.util. InputMismatchException;
import java.util. Pemindai;
kelas umum Utama {
// Fungsi utama yang menjalankan program dan mengumpulkan dua nilai
public static void main (String [] args) {
coba {
System.out.println ("Harap masukkan dua nilai integer Anda:");
int nilai1;
nilai int2;
// menggunakan kelas pemindai untuk membaca setiap masukan dari pengguna,
// dan menugaskannya ke variabel masing-masing (mengeluarkan pengecualian jika nilainya bukan bilangan bulat)
Input pemindai = Pemindai baru (System.in);
nilai1 = input.nextInt ();
nilai2 = input.nextInt ();
// memanggil fungsi penjumlahan dan meneruskan dua nilai padanya
penambahan (nilai1, nilai2);
// menutup aliran input setelah itu mencapai akhir penggunaannya
input.close ();
// tangani semua kesalahan yang terjadi di blok percobaan
} menangkap (InputMismatchException e) {
System.out.println ("Harap masukkan nilai integer yang valid.");
} menangkap (Pengecualian e) {
System.out.println (e.getMessage ());
}
}
// fungsi yang mengumpulkan dua nilai dan menampilkan jumlahnya
penambahan ruang kosong statis pribadi (nilai int1, nilai int2) {
int sum;
jumlah = nilai1 + nilai2;
System.out.println ("Jumlah dari dua nilai integer yang Anda masukkan:" + jumlah);
}
}
Kode di atas aman karena melakukan penanganan pengecualian. Oleh karena itu, jika Anda memasukkan nilai non-integer, program akan berhenti dengan benar saat menghasilkan baris kode berikut:
Harap masukkan nilai bilangan bulat yang valid.
Apa Itu Penanganan Pengecualian?
Pada dasarnya, penanganan pengecualian adalah versi modern dari penanganan kesalahan, di mana Anda memisahkan kode penanganan kesalahan dari kode pemrosesan normal. Pada contoh di atas, semua kode pemrosesan normal (atau kode yang berpotensi memunculkan pengecualian) ada di dalam file mencoba blokir, dan semua kode penanganan kesalahan ada di dalamnya menangkap blok.
Jika Anda melihat lebih dekat pada contoh di atas, Anda akan menemukan bahwa ada dua blok tangkapan. Yang pertama membutuhkan InputMismatchException argumen; ini adalah nama pengecualian yang muncul jika nilai bukan bilangan bulat dimasukkan. Yang kedua membutuhkan Pengecualian argumen, dan ini penting karena tujuannya adalah untuk menangkap pengecualian dalam kode yang tidak ditemukan pengembang selama pengujian.
Terkait: Pengecualian Java: Apakah Anda Menanganinya dengan Benar?
Menguji Kode Anda
Anda tidak boleh meremehkan kekuatan pengujian dan pengujian ulang kode Anda sebelum pengemasan. Banyak pengembang (dan pengguna aplikasinya) menemukan bug baru setelah perangkat lunak tersedia untuk umum.
Menguji kode Anda secara menyeluruh akan memastikan bahwa Anda tahu apa yang akan dilakukan aplikasi Anda dalam setiap skenario yang memungkinkan, dan itu memungkinkan Anda untuk melindungi aplikasi Anda dari pelanggaran data.
Terkait: Cara Mendaratkan Pekerjaan Pengujian Perangkat Lunak Pertama Anda
Perhatikan contoh di atas. Bagaimana jika, setelah selesai, Anda hanya menguji aplikasi dengan nilai integer? Anda mungkin keluar dari aplikasi dengan berpikir bahwa Anda berhasil mengidentifikasi semua potensi kesalahan padahal bukan itu masalahnya.
Faktanya adalah Anda mungkin tidak dapat mengidentifikasi semua potensi kesalahan; Inilah sebabnya mengapa penanganan kesalahan bekerja sama dengan menguji kode Anda. Pengujian program di atas menunjukkan salah satu potensi kesalahan akan terjadi pada skenario tertentu.
Namun, jika ada beberapa kesalahan lain yang tidak muncul selama pengujian, blok catch kedua dalam kode di atas akan menanganinya.
Mengamankan Database Anda
Jika aplikasi Anda terhubung ke database, cara terbaik untuk mencegah akses ke database tersebut adalah dengan memastikan bahwa semua aspek aplikasi Anda aman. Namun, bagaimana jika aplikasi Anda dirancang dengan tujuan menyediakan antarmuka ke database tersebut?
Di sinilah segalanya menjadi sedikit lebih menarik. Dalam bentuknya yang paling dasar, database memungkinkan pengguna untuk menambah, mengambil, memperbarui, dan menghapus data. Sistem manajemen basis data adalah aplikasi yang memungkinkan pengguna berinteraksi langsung dengan basis data.
Sebagian besar database berisi data sensitif, oleh karena itu untuk menjaga integritas dan membatasi akses ke data ini terdapat satu persyaratan kontrol akses.
Kontrol akses
Kontrol akses berusaha untuk mempertahankan integritas database dengan menentukan tipe orang yang bisa mengakses database dan membatasi tipe akses yang mereka miliki. Oleh karena itu, sistem manajemen basis data yang baik harus dapat mencatat siapa yang mengakses basis data, pada jam berapa, dan apa yang mereka lakukan.
Ini juga harus dapat mencegah pengguna terdaftar mengakses atau mengedit data yang mereka tidak berwenang untuk berinteraksi dengannya.
Keamanan Perangkat Lunak Adalah Keterampilan Krusial Untuk Semua Pengembang
Mengembangkan perangkat lunak yang baik identik dengan memastikan bahwa perangkat lunak Anda dapat menahan serangan jahat apa pun. Ini hanya dapat dicapai melalui penulisan kode aman, pengujian aplikasi yang berkelanjutan, dan mempertahankan kendali atas siapa yang memiliki akses ke data Anda.
Sekarang setelah Anda mengetahui cara mengamankan perangkat lunak Anda, Anda mungkin ingin mempelajari tentang beberapa langkah pengembangan perangkat lunak.
Bersiap untuk membuat kode program pertama Anda? Pastikan untuk mengikuti langkah-langkah pengembangan perangkat lunak utama ini.
Baca Selanjutnya
- Pemrograman
- Keamanan cyber
- Tips Coding

Kadeisha Kean adalah Pengembang Perangkat Lunak Tumpukan Penuh dan Penulis Teknis / Teknologi. Dia memiliki kemampuan berbeda untuk menyederhanakan beberapa konsep teknologi yang paling kompleks; menghasilkan materi yang dapat dengan mudah dipahami oleh pemula teknologi apa pun. Dia bersemangat menulis, mengembangkan perangkat lunak yang menarik, dan berkeliling dunia (melalui film dokumenter).
Berlangganan newsletter kami
Bergabunglah dengan buletin kami untuk mendapatkan tip teknologi, ulasan, ebook gratis, dan penawaran eksklusif!
Satu langkah lagi…!
Harap konfirmasi alamat email Anda di email yang baru saja kami kirimkan kepada Anda.