Agustus 2012 | DASAR PROGRAMER

Cara Membuat Form Login Yang Aman (Secure From SQL Injection) VB6/VBNET

Secara singkat sql injection adalah menambahkan perintah sql query melalui input box (textbox, combobox, dll) dengan tujuan untuk memodifikasi sql query yang sudah ada atau menciptakan sql query baru. Biasanya orang yang baru belajar programming sering mengabaikan masalah security ini, contoh kasus:
Sintak/sql quer untuk Login biasanya seperti ini :

"SELECT USER_ID, PASSWORD FROM MS_USER WHERE USER_ID='" + Txt_User.Text + "' AND PASSWORD='" + Txt_Pass.Text + "'"

Nah jika user/operator menginputkan pada Txt_User dan Txt_Pass seperti ini : ' OR '1'='1
Maka setelah aplikasi/program Run, sintak/sql query tersebut akan berubah menjadi seperti ini :

"SELECT USER_ID, PASSWORD FROM MS_USER WHERE USER_ID='' OR '1'='1' AND PASSWORD='' OR '1'='1'"
Dan ini akan menghasilkan nilai TRUE, sehingga user (anonymous) akan dapat masuk sesuka hati tanpa harus tahu user id dan password-nya.

Ada beberapa solusi untuk mengatasi masalah ini, diantaranya adalah :
  1. Menghilangkan (Replace) karakter kutip satu (') dengan karakter kosong, contoh :
    Txt_User.Text.Replace("'", "")
  2. Memendekan MaxLength TextBox sesuai dengan field database, contoh jika di table field User_Id = Varchar(10), maka Txt_User pun harus MaxLenght=10 juga agar user tidak bebas/kepanjangan menginput sesuatu/apapun pada textbox tersebut.
  3. Mengubah sintak/sqlquery menjadi seperti ini :
"SELECT USER_ID, PASSWORD FROM MS_USER WHERE USER_ID='" + Txt_User.Text.Replace("'", "") + "'"
'...sintak anda untuk mengecek keberadaan user, Jika User Ada Maka Cek Password, Contoh :
IFreader.Item("PASSWORD") = Txt_Pass.Text.Replace("'", "") Then
    '...sintak anda jika login SUKSES
Else
    '...sintak anda jika login GAGAL
End IF
3 cara diatas adalah sebagian dari banyak cara yang dapat anda lakukan untuk mencegah terjadinya sql injection dari tangan tangan yang jahil dan tidak bertanggung jawab. Semoga artikel saya ini bermanfat ntuk anda. Terimakasih.

Tags:
sql injection example, cara membobol form login vb, cara membuat form login yang aman, security pada form login visual basic, Coding techniques for protecting against Sql injection, Preventing SQL Injection in vbnet, Validating User Input - SQL Injection Attacks in VB.NET, mengurangi kelemahan dari form login (swl injection), cara memjebol baypass user id dan password pada form login logon vb, masuk ke aplikasi tanpa login database, cara membuat login user yang aman, user trustee pada form login,Proteksi awal terhadap SQL injection, How To Sql Injection Visual Basic, Anti SQL Injection, Teknik coding untuk perlindungan terhadap SQL Injection



Download DotNetBar v10.0.0.3 (For Windows Form .NET)

Ini dia salah satu komponen untuk .NET yang bernama DotNetBar versi 10 yang dikeluarkan oleh DevComponents. Sama halnya seperti DevExpress atau CodeJock, DotNetBar juga menawarkan fitur fitur yang tak kalah hebatnya. Lihatlah Screenshot berikut ini :
Menu Metro Windows 8
Runtime Drag Drop Mapping
Contoh lain adalah custom DataGridView, ListView dan TreeView yang lebih inovative. Lihatlah screenshot berikut ini:
Custom DataGridViewX
Custom Tab Control
Masih banyak lagi fitur fitur lainnya yang menarik yang tidak bisa saya sebutkan satu satu, dua ang menarik diantaranya adalah BubbleBar (seperti software ObjectDock) dan Knob Control untuk anda pecinta Multimedia. Lihatah screenshot berikut ini:
BubbleBar Control
Knob Control
Bagi anda yang tertarik silahkan download DotNetBar Setup Installer nya (TRIAL).
  • Download DotNetBar  v10.0.0.3 : Part1, Part2 
  •  Link Updated on 2013-12-09 (yy-mm-dd) !
  • Download Password : Link Part2 + rar/7zip
Disini saya menyediakan KEY nya untuk membuat komponen ini full version, tapi ingat ini hanya untuk bahan PEMBELAJARAN (for education only and not for commercial), jika anda membuat aplikasi menggunakan komponen ini dan menjualnya maka anda harus membeli lisensi yang asli.
  •  Link Updated on 2014-01-02 (yy-mm-dd) !
  • Download DotNetBar  v10.0.0.3 (KEY)

Tags:
komponen visual basic, download DotNetBar, DotNetBar download, free downlaod DotNetBar, DotNetBar full version, cara menggunakan DotNetBar, DotNetBar adalah, DotNetBar for .net, crack DotNetBar, membuat tampilan vb, skin office 2007 for vb, make skin vb like office 2007, membuat skin, DotNetBar ocx, ocx DotNetBar, DotNetBar ocx complete full, complete DotNetBar ocx, free download DotNetBar 10 full, DotNetBar gtratis, free DotNetBar crack, free DotNetBar patch, download DotNetBar terbaru 2012, free DotNetBar example, free DotNetBar for vbnet, free DotNetBar for c#, komponene untuk net free

Cara Membuat Generate Auto Number/No Urut/No Bukti VBNET

Ini merupakan penjelasan tambahan (lebih lanjut) dari postingan saya tentang Basic Generate Auto Number, Kali ini saya akan sedikit menjelaskan untuk beberapa kasus dan jenis No Urut yang biasa ada dalam aplikasi sehari hari. Baiklah saya langsung contohkan ke coding vbnet dan cara melakukan SELECT query untuk mendapatkan No urut terakhir dari database.

Functiondjie_AutoNumber() As String
        Dimv_sql As String
        'No Bukti Dengan Format Biasa 001,002,003
        v_sql = "SELECT NO_BUKTI FROM TBL_HEAD ORDER BY NO_BUKTI DESC"
        Usingcon As NewSqlClient.SqlConnection("DATA SOURCE=djiesoft;INITIAL CATALOG=test_db;USER ID=sa;PASSWORD=123"
            con.Open()
            Dimcmd As NewSqlClient.SqlCommand(v_sql, con)
            Dimreader As SqlClient.SqlDataReader
            reader = cmd.ExecuteReader
            Ifreader.HasRows Then
                reader.Read()
                ReturnMid("000",1,3-(Val(Trim(reader.Item(0).ToString)) + 1).ToString.Length) + (Val(Trim(reader.Item(0).ToString)) + 1).ToString
            Else
                Return"001"
            EndIf
        End Using
End Function

Untuk kasus lain yang sedikit lebih rumit, misalanya ada kombinasi karakter, tahun, bulan,hari dan sebagainya anda cukup ganti saja pada bagian ini :
        'Contoh Custom No Bukti A001, A002, B001, C001, C002
        'Jadi Setiap Karakter Masing2 A,B,C punya no urut masing2
        v_sql = "SELECT RIGHT(NO_BUKTI,3) AS NO_BUKTI FROM TBL_HEAD WHERE LEFT(NO_BUKTI,1)='A' ORDER BY RIGHT(NO_BUKTI,3) DESC"
        Ifreader.HasRows Then
            reader.Read()
             Return"A" + Mid("000",1,3-(Val(Trim(reader.Item(0).ToString)) + 1).ToString.Length) +(Val(Trim(reader.Item(0).ToString)) + 1).ToString
        Else
            Return"A001"
        End If

        'Contoh No Bukti yyyymmdd-xxx : 20120801-001,20120801-002
        'Jika Ingin Setiap TAHUN Ganti/Reset Ke 001 Lagi
        v_sql = "SELECT RIGHT(NO_BUKTI,3) AS NO_BUKTI FROM TBL_HEAD WHERE YEAR(LEFT(NO_BUKTI,8))=YEAR(GETDATE()) ORDER BY RIGHT(NO_BUKTI,3) DESC"
        'Jika Ingin Setiap BULAN Ganti/Reset Ke 001 Lagi
        v_sql = "SELECT RIGHT(NO_BUKTI,3) AS NO_BUKTI FROM TBL_HEAD WHERE YEAR(LEFT(NO_BUKTI,8))+MONTH(LEFT(NO_BUKTI,8))=YEAR(GETDATE())+MONTH(GETDATE()) ORDER BY RIGHT(NO_BUKTI,3) DESC"
        'Jika Ingin Setiap HARI Ganti/Reset Ke 001 Lagi
        v_sql = "SELECT RIGHT(NO_BUKTI,3) AS NO_BUKTI FROM TBL_HEAD WHERE YEAR(LEFT(NO_BUKTI,8))+MONTH(LEFT(NO_BUKTI,8))+DAY(LEFT(NO_BUKTI,8))=YEAR(GETDATE())+MONTH(GETDATE())+DAY(GETDATE()) ORDER BY RIGHT(NO_BUKTI,3) DESC"
        Ifreader.HasRows Then
            reader.Read()
            ReturnFormat(Now.Date, "yyyyMMdd") + "-" + (Val(Trim(reader.Item(0).ToString)) + 1).ToString
        Else
            ReturnFormat(Now.Date, "yyyyMMdd") + "-001"
        End If

Ini adalah cara saya sendiri yang biasa saya lakukan dan tentu harus ada modifikasi sesuai dengan kasus dan kebutuhan anda, dan sebenarnya masih banyak "Jalan/Cara" lain untuk melakukan generate No Urut ini, Mungkin anda bisa lebih menyingkat/menyederhanakan lagi sintak diatas atau mungkin anda mempunya cara lain yang lebih praktis yang bisa share (berbagi) melalui comment dibawah atau mungkin juga anda ingin bertanya tentang kasus No Urut lain yang saya tidak sebutkan diatas. Semoga bermanfaat.

Tags:
cara generate autonumber, cara membuat nobukti bertambah, cara generate nobukti otomatis, cara membuat auto nourut, cara membuat custom nourut vbnet, generate auto increment sqlserver , cara membuat norutu berdasarkan tahun tangal bulan , cara membuat nourut berganti setiap tahun atau bulan, membuat no bukti pertanggal, membuat nourut transaksi vbnet sql