Ads Home1

5 Kesalahan Umum Programmer

http://www.xcodeplus.net/2018/01/5-kesalahan-umum-programmer.html

Inilah Kesalahan Umum yang Sering dilakukan Programmer

Menurut wikipedia dalam halamannya, programmer, developer, dev, coder atau software engineer adalah seorang yang bekerja menciptakan sebuah perangkat lunak (software) beberapa pekerjaan yang mereka lakukan meliputi:
1. Coding
2. Kompilasi
3. Dokumentasi
4. Integrasi
5. Pemeliharaan
6. Persyaratan analisis
7. Software arsitektur
8. Software pengujian
9. Spesifikasi
10. Debugging


Dalam proses kerjanya tidaklah mudah, membutuhkan jam terbang yang lama untuk benar-benar menguasai bahasa pemrograman tertentu dan bagaimana seoarang programmer benar-benar dapat mengimplementasikan konsep yang harus diterapkan pada saat menuliskan sebuah kode program. 

Banyak sekali tantangan yang dihadapi oleh karna itu tidak aneh jika seorang programmer pernah melakukan kesalahan. Berikut ini adalah beberapa kesalahan pemrograman dan kesalahan coding yang sering dilakukan oleh programmer. Kesalahan ini mengakibatkan error yang meluas, pencurian data, SQL injection dan banyak lagi. Beberapa kesalahan tertentu untuk bahasa tertentu seperti C, C ++, dll, namun ada juga yang umum di bahasa lain seperti Java, JavaScript, Python dll.


1. Buffer Overflow


http://www.xcodeplus.net/2018/01/5-kesalahan-umum-programmer.html
Gambar 1.1 - Buffer Overflow
Dalam keamanan komputer dan pemrograman, buffer overflow, atau buffer overrun, adalah anomali dimana sebuah program, saat menulis data ke buffer, overruns batas buffer dan menimpa lokasi memori yang berdekatan. Bahasa pemrograman yang umumnya dikaitkan dengan buffer overflow mencakup C dan C ++, yang tidak menyediakan perlindungan internal terhadap data pengaksesan atau penimpaan di bagian memori manapun dan tidak secara otomatis memeriksa data yang ditulis ke array yang berada dalam batas-batas dari array tersebut.

CONTOH: 
int main(int argc, const char* argv[])
{
    char buf[10];
    memset(buf, 0, 11);
    return 0;
}

Lalu, bagaimana dengan bahasa pemrograman C# ? Apakah dapat memungkinkan terjadinya buffer overflow ?

Jawabannya ya, akan tetapi jarang sekali terjadi namun inipun bukan standar dalam penulisan kode C#, berikut ini hal yang mungkin bisa terjadinya buffer overflow ketika pada saat kita menggunakan kata kunci unsafe sebagai berikut:

CONTOH:
unsafe void bufferOverflow(string s)
{
    char* ptr = stackalloc char[10];

    foreach (var c in s)
    {
        *ptr++ = c; // Bufferoverflow jika s.Length > 10
    }
}

Namun, apapun alasannya, kesalahan ini adalah salah satu yang paling umum dan telah menghasilkan eksploitasi besar. Beberapa di antaranya termasuk Morris Internet Worm pada tahun 1988, worm W32 / Nimda pada tahun 2001, dan kesalahan Sendmail pada tahun 2003.
Lihat selengkapnya artikel mengenai buffer overflow disini




2. SQL Injection

http://www.xcodeplus.net/2018/01/5-kesalahan-umum-programmer.html
Gambar 1.2 - SQL Injection
SQL Injection adalah Teknik untuk menyuntikkan perintah SQL ke inputan pengguna sehingga perintah ini dijalankan langsung oleh database. Hal ini memungkinkan penyerang untuk melakukan tindakan jahat seperti menghapus tabel, mencuri data dan banyak lagi. Hal terparah dari kejahatan ini adalah pencurian data Cc (Credit card) pelanggan.

SQL Injection terjadi karena adanya sebuah celah. Hal ini terjadi ketika inputan pengguna tidak disaring secara benar dari karakter-karakter pelolos bentukan string yang diimbuhkan dalam pernyataan SQL (misalnya: " - ", " -- ", " ' " ). Berikut ini pernyataan yang akan menimbulkan terjadinya SQL Injection:


CONTOH:
txtUserId = getRequestString("UserId");
txtSQL = "SELECT * FROM Users WHERE UserId = " + txtUserId;

Penulisan kode program di atas akan memberikan dampak terjadinya SQL Injection, Berikut ini saya akan mendemonstrasikan bagaimana terjadinya proses SQL injection pada sebuah web situs yang rentan akan serangan tersebut.

http://www.xcodeplus.net/2018/01/5-kesalahan-umum-programmer.html
Pada gambar di atas mula-mula saya melakukan inputan yang rentan akan terjadinya celah SQL Injection, dan lihat saja hasil yang diberikan pada gambar di atas terjadinya sebuah error ini terjadi karena seorang programmer lalai tidak menutup sebuah celah dengan baik. Lihat lah pada gambar di bawah ini dampak berbahaya yang ditimbulkan dari kasus tersebut sebagai berikut:

http://www.xcodeplus.net/2018/01/5-kesalahan-umum-programmer.html

Bisa kita lihat pada gambar di atas, versi database yang digunakan adalah versi generasi ke 5, dan setelah saya  memasukan perintah untuk mengambil data mengenai tabel-tabel dari situs web tersebut, maka bisa kita lihat pada gambar di atas kita menemukan tabel catalog, ndata, dan sebagainya. Dari kesalahan yang dilakukan oleh programmer tersebut dampak yang akan ditimbulkan sangatlah berbahaya, bagaimana jika seseorang yang berniat jahat menemukan data tabel admin seperti username dan password atau data-data penting pelanggan ? 

Apapun alasannya hal ini tidak boleh sampai terjadi, dalam beberapa kasus saya menemukan sebuah data Cc pelanggan dari situs web dan parahnya lagi password dari pelanggan tersebut tidak dienkripsi hanya password adminlah yang dienkripsi menggunakan metode md5. Walaupun demikian, jika password yang digunakan tidak menggunakan kombinasi karakter maka hasilnya akan sia-sia saja. Saya hanya perlu mengenerate password tersebut dan hasilnya Boom!.

Lihat selengkapnya mengenai SQL Injection dan cara bagaimana mengatasi dari penyerangan tersebut disini

 

3. Integer Overflow

http://www.xcodeplus.net/2018/01/5-kesalahan-umum-programmer.html
Gambar 1.3 - Interger Overflow
Dalam pemrograman komputer, sebuah integer overflow terjadi ketika sebuah operasi aritmatika mencoba untuk menciptakan nilai numerik yang berada di luar rentang yang dapat diwakili dengan sejumlah bit tertentu - lebih besar dari pada maksimum atau lebih rendah dari nilai representable minimum. Maksud dari hal ini yaitu kondisi yang terjadi bila hasil operasi aritmatika, seperti perkalian atau penambahan, melebihi ukuran maksimum tipe integer yang digunakan untuk menyimpannya.

CONTOH:
// nilai 65530 adalah rentang nilai maksimum dari unsigned short
short a = 65530, b = 10;
short c = a + b;

Dalam contoh potongan kode program di atas variabel c akan menghasilkan nilai yang tidak terduga. Lihat selengkapnya mengenai Interger Overflow disini


4. Allocate Resources Without Limits

Alokasi memori sangat umum di C dan C ++ karena semua manajemen memori dalam bahasa ini bersifat manual (diatur oleh programmer). Mengalokasikan memori tanpa validasi yang tepat dari ukuran yang dialokasikan dapat menyebabkan alokasi tersebut gagal. Bila hasil alokasi ini tidak dicek tapi digunakan secara langsung, maka timbulah sebuah bencana.

Jenis kesalahan ini juga mungkin terjadi tanpa pengelolaan memori manual seperti Java, JavaScript dan Python pada saat mengalokasikan array. Jadi Anda perlu melakukan tindakan yang tepat saat mengalokasikan array dalam bahasa ini.

Kemungkinan lain dari kesalahan ini yang timbul adalah membuat resource lain seperti penanganan file atau penanganan koneksi tanpa pengecekan yang benar. Tidak menutup resource dengan benar saat Anda selesai menggunakannya dan sebagainya. Berikut di bawah ini gambar yang akan menjelaskan mengenai masalah ini:

http://www.xcodeplus.net/2018/01/5-kesalahan-umum-programmer.html
Gambar 1.4 - Allocate Resources Without Limits
 Lihat selengkapnya mengenai Resouce Allocation Problem disini.



5. Code Injection

http://www.xcodeplus.net/2018/01/5-kesalahan-umum-programmer.html
Gambar 1.5 - Code Injection
Code Injection (Bahasa indonesia: Injeksi kode) adalah eksploitasi bug komputer yang disebabkan oleh pengolahan data yang tidak benar. Injection digunakan oleh penyerang untuk "menyuntikkan" kode ke dalam program komputer yang rentan dan mengubah jalannya eksekusi. Hasil dari injection kode yang berhasil bisa menjadi bencana, misalnya dengan membiarkan worm komputer menyebar.

Teknik Code Injection ini sangat populer di sistem hacking atau cracking untuk mendapatkan informasi. Injeksi kode dapat digunakan dengan tidak sengaja untuk berbagai tujuan, termasuk:
 
  1. Mengubah nilai secara sewenang-wenang dalam database melalui SQL Injection.
  2. Menginstal malware atau menjalankan kode jahat di server, dengan menyuntikkan kode skrip server (seperti PHP atau ASP).
  3. Menyerang pengguna web dengan HTML / Script Injection (Cross-site scripting).
Pada tahun 2008 merupakan tahun dimana peristiwa Code Injection tertinggi, 5,66%. Namun pada tahun 2015 lalu, mengalami penurunan menjadi 0,77%.

Lihat selengkapnya artikel mengenai Code Injection disini
 

BONUS:

6. Jadi Programmer Aja Udah Salah! What!!😜😜


Dalam beberapa kasus semoga Anda dapat mengatasi segala kesalahan dari penulisan kode yang tidak aman, lakukanlah pengecekan kode berulang pastikan kode yang Anda tulis tidak menimbulkan bencana untuk kedepepannya. Saya berharap postingan ini dapat bermanfaat bagi Anda dan tulisan inipun saya gunakan sebagai pengingat untuk diri saya sendiri nantinya.

Dari kelima daftar di atas adalah sebuah kesalahan umum yang sering terjadi hingga saat ini, namun dalam berjalannya waktu kita akan lebih terampil dengan adanya pengalaman yang ada. Sebenarnya masih banyak lagi kasus-kasus kesalahan yang dilakukan oleh programmer akan tetapi saya hanya membahasnya pada peristiwa yang sering terjadi.


C# (dibaca: C Sharp) merupakan bahasa pemrograman generasi baru yang mewah, kaya akan fitur, dan dapat digunakan untuk membuat beraneka raga program/aplikasi di berbagai bidang. C# mendukung beberapa paradigma pemrograman: imperatif, deklaratif, fungsional, serta pemrograman berorientasi objek. C# termasuk dalam keluarga C, dan fitur-fiturnya banyak diadopsi dari Java dan C++. C# menggunakan pustaka (library) yang terdapat dalam .NET Framework, kelengkapan di dalam pustaka .NET Framework menjadikan proses pengembangan program/aplikasi menggunakan C# relatif lebih mudah dan cepat jika dibandingkan dengan C++ dan Java.


No comments:

Kami menerima masukan dari anda jika memang ada pembahasan yang keliru dan kami sangat senang jika anda dapat berkontribusi untuk menyempurnakan postingan kami. Anda dapat mengirimkan email ke : hari18.muhammad@gmail.com

Jika postingan ini bermanfaat jangan lupa share postingan ini. Kami sangat merekomendasikan untuk anda yang membutuhkan informasi tentang computer stuff silakan subscribe blog kami dapatkan informasi terupdate dari kami secara gratiss. Terimakasih!

Powered by Blogger.