keren........... 2010/7/15 Gotman Panggabean <cotman_2...@yahoo.com>
> > > hehe... sip... > > > > regards. > Cotman > --- Pada *Rab, 14/7/10, Anez Story <anez_st...@yahoo.com>* menulis: > > > Dari: Anez Story <anez_st...@yahoo.com> > Judul: Re: [programmer-vb] Membuat Form Password > Kepada: programmer-vb@yahoogroups.com > Tanggal: Rabu, 14 Juli, 2010, 6:11 PM > > > > > hehehe...iya ni bisa masuk ternyata..hehe > makasih banyak ni pak gotman atas info nya.. > > > ------------------------------ > *From:* Gotman Panggabean <cotman_2005@ yahoo.com> > *To:* programmer-vb@ yahoogroups. com > *Sent:* Wed, July 14, 2010 1:26:30 AM > *Subject:* Re: [programmer- vb] Membuat Form Password > > > > hehehe... maaf saya lupa kalau code dibawah, saya sudah menggunakan fungsi > "replace" untuk menghindari sql injection, kemungkinan kecil untuk diinject > walau masih bisa sepertinya. > pada code : > > strLogin = Replace(txtUsername .Text, "'", "''") > strPaswd = Replace(txtPassword .Text, "'", "''") > > nah jika code diatas diganti menjadi > > strLogin = txtUsername. Text > strPaswd = txtPassword. Text > > tanpa ada nya fungsi "replace" > nah hal ini akan sangat mudah untuk diinject. > > yang saya maksud pada : > > 'Mudah untuk di inject maka hindari langkah ini > 'Set rst = cnn.Execute( "Select * from tblUser where username='" & strLogin > & "' and password='" & strPaswd & "'") > > pada kondisi dimana tidak menggunakan fungsi "Replace" > > jika masih tidak percaya silakan rancang form-nya dan dicoba. > pada saat dirun.kemudian masukkan/ketik pada textbox txtusername : > > ' or 1=1 or ' > > Nah apa yang terjadi : langsung masuk ke dalam frmMain..! > > masuk yah..? > masuk kan..? > iya kan .? > iya donk...! > > hehe... canda... > > tetapi kalau menggunakan Object command semua sql syntaxnya dianggab > sebagai string sehingga tanpa perintah "Replace" akan tetep aman. (AMAN dari > Sql Injection) > > Semoga Membantu. > > Regards, > Cotman > I'm not good enough, Tell me if there're many mistake of the code above. > > > --- Pada *Sel, 13/7/10, Anez Story <anez_st...@yahoo. com>* menulis: > > > Dari: Anez Story <anez_st...@yahoo. com> > Judul: Re: [programmer- vb] Membuat Form Password > Kepada: programmer-vb@ yahoogroups. com > Tanggal: Selasa, 13 Juli, 2010, 10:10 PM > > > > dear gotman panggabean, > > 'Mudah untuk di inject maka hindari langkah ini > 'Set rst = cnn.Execute( "Select * from tblUser where username='" & strLogin > & "' and password='" & strPaswd & "'") > > hmm..saya biasa pakai coding diatas untuk membuat form login.. > kalau boleh tau cara user untuk membobol nya bagaimana ya? > > best regrads, > > > story > > ------------------------------ > *From:* Gotman Panggabean <cotman_2005@ yahoo.com> > *To:* programmer-vb@ yahoogroups. com > *Sent:* Tue, July 13, 2010 7:14:39 PM > *Subject:* Re: [programmer- vb] Membuat Form Password > > > > materinya lumayan menarik... > mencoba ikut membahas... > > nah untuk menghindari Sql Injection di VB gunakan object command untuk > membungkus syntax sql ini biasa saya gunakan. Perhatikan code dibawah ini. > > Asumsi : > Database : Ms. Access (Apa saja databasenya. .. hanya melakukan perubahan > pada connection string nya saja) > Table : tblUser(Field : Username dan Password) > Code nya adalah : > > Private Sub Command1_Click( ) > Dim cnn As New ADODB.Connection > Dim strLogin As String, strPaswd As String > cnn.CursorLocation = adUseClient > cnn.Open "Provider=Microsoft .Jet.OLEDB. 4.0;Data Source=C:\DB. > mdb;Persist Security Info=False" > > strLogin = Replace(txtUsername .Text, "'", "''") > strPaswd = Replace(txtPassword .Text, "'", "''") > > Dim rst As New ADODB.Recordset > > 'Mudah untuk di inject maka hindari langkah ini > 'Set rst = cnn.Execute( "Select * from tblUser where username='" & strLogin > & "' and password='" & strPaswd & "'") > > > 'Solusinya gunakan object command > Dim ocmd As New ADODB.Command > ocmd.ActiveConnecti on = cnn > ocmd.CommandType = adCmdText > 'Gunakan parameter disini : > ocmd.CommandText = "Select * from tblUser where username=? and > password=?" > > 'Isi nilai parameternya > ocmd.Parameters( 0).Value = strLogin > ocmd.Parameters( 1).Value = strPaswd > 'ocmd.Execute > > 'set recordsetnya dari object command > Set rst = ocmd.Execute( ) > > If rst.RecordCount > 0 Then > frmMain.Show > frmMain.Caption = "Welcome - " & txtUsername. Text > frmLogin.Hide > Else > MsgBox "Invalid Username or password !", vbCritical, "Warn" > txtPassword. Text = "" > txtPassword. SetFocus > End If > > End Sub > > > > Hasilnya bebas dari Sql injection. > Semoga Membantu. > > > Regards. > Cotman. > > > > > --- Pada *Sel, 13/7/10, Anez Story <anez_st...@yahoo. com>* menulis: > > > Dari: Anez Story <anez_st...@yahoo. com> > Judul: Re: [programmer- vb] Membuat Form Password > Kepada: programmer-vb@ yahoogroups. com > Tanggal: Selasa, 13 Juli, 2010, 5:58 PM > > > > dear johan max, > > weleh2..bahasanya tinggi sekali..hehe > oo..pake stored procedure ya.. > ntu stored procedure bawaan sql server ato kt buat lagi? > kalau bawaan sql server, stored procedure yang mana? > maklum saya belum pernah pakai stored procedure sebelumnya.. . > > best regrads, > > > story > > ------------------------------ > *From:* johan max <johans...@yahoo. com> > *To:* programmer-vb@ yahoogroups. com > *Sent:* Tue, July 13, 2010 3:12:46 AM > *Subject:* Re: [programmer- vb] Membuat Form Password > > > > Cara yang bener seharusnya > a. memanggil stored procedure > b. menggunakan parameter > jadi dihindari proses akses ke table langsung. > > TDD = test driven development. > Layering= pemisahan tanggung jawab yang jelas antara tiap komponen. > Ada komponen ui, bisnis, data, data akses. > Dengan dibagi-bagi seperti ini maka : > 1. pengetesannya mudah > 2. akan mengikuti perinsip solid > 3. mengurangi dependency > 4. team work akan sangat berjalan > 5. memudahkan code review dan inspection karena menurunkan derajat > cylocmatic complecity, loc dan maintenance complecity. > > > ------------------------------ > *From:* Anez Story <anez_st...@yahoo. com> > *To:* programmer-vb@ yahoogroups. com > *Sent:* Tue, July 13, 2010 4:29:41 PM > *Subject:* Re: [programmer- vb] Membuat Form Password > > > > dear johan max, > > oow..bahaya jg ya.. > jd user lain bisa langsung akses database kt.. > jd cara yang benar bagaimana pak johan? > btw ttd dan layering tuh apa ya? > > best regrads, > > story > > ------------------------------ > *From:* johan max <johans...@yahoo. com> > *To:* programmer-vb@ yahoogroups. com > *Sent:* Tue, July 13, 2010 1:51:05 AM > *Subject:* Re: [programmer- vb] Membuat Form Password > > > > SQL injection itu adalah sebuah teknik untuk menginjeksi sebuah string > query ke sebuah perintah query. Biasanya digunakan hacker untuk mendapatkan > hak akses. > > Contoh > > ini query yang berbahaya : > select *from <nama_tabel> where username=" & username_txt. text > jika username_txt. txt memuat isi 1 or 1=1 maka perintah querynya akan > menjadi select * from <namatable> where username =1 or 1=1 > yang hasilnya akan selalu benar sehingga hacker dapat memperoleh hak akses > kesana. > > Alternatif lain adalah menggunakan tanda ; > jika username_txt. text berisi 1;select * from user; > ada kemungkinan sqlnya error karena tidak ada tabel user. > Dari situ dapat diketahui ada tabel apa yang ada di database. > > bagaimana kalo username_txt. textnya berisi 1;delete * from penjualan > Maut kan. > Terakhir cara di atas tidak mendukung tdd dan layering. > > Kelemahan lain adalah sangat bergantung pada settingan collation database. > Ini membuat untuk validasi user bermasalah. > > ------------------------------ > *From:* Anez Story <anez_st...@yahoo. com> > *To:* programmer-vb@ yahoogroups. com > *Sent:* Tue, July 13, 2010 7:53:26 AM > *Subject:* Re: [programmer- vb] Membuat Form Password > > > > dear johan, > > sql injection tuh apa ya? > bahaya nya gimana? > > best regrads, > > story > > > ------------------------------ > *From:* johan max <johans...@yahoo. com> > *To:* programmer-vb@ yahoogroups. com > *Sent:* Mon, July 12, 2010 1:29:05 AM > *Subject:* Re: [programmer- vb] Membuat Form Password > > > > Wah kalian ini tidak tahu sql injection ya. Kode di bawah gampang banget > diinject dengan sql injection. Bahaya tuch. > Nggak boleh ada concatenasi string di query harus pake parameter.. > > > > ------------------------------ > *From:* Frangky id <franklin.id@ gmail.com> > *To:* programmer-vb@ yahoogroups. com > *Sent:* Mon, July 12, 2010 3:10:01 PM > *Subject:* Re: [programmer- vb] Membuat Form Password > > > > Kalau metode searching WHere-nya hanya username, kemungkinan kalau Password > yang diinput salahpun, pasti diterima. > > Pada 12 Juli 2010 12:23, Yusuf Afandi <cr_4...@yahoo. com> menulis: > >> >> >> coba masukkan ke database. buat database yang isinya username dan >> password. kalo mau diganti tinggal di searching username nya trus password >> nya diganti . bener kata mas ado. >> kalo pake mysql searching bisa pake listing ini : >> "select *from <nama_tabel> where username=" & username_txt. text >> >> mas ado mas bahar salam kenal.... >> best regrads..... ......... >> ucup a. >> >> ------------------------------ >> *From:* Edwar Rinaldo <a...@gramediapublish ers.com> >> *To:* programmer-vb@ yahoogroups. com >> *Sent:* Wed, May 11, 2011 10:28:55 AM >> *Subject:* Re: [programmer- vb] Membuat Form Password >> >> >> >> coba jawab yah mas, >> >> mungkin bisa docoba cara berikut mas, ketika user login, simpan username >> dan password di global variabel mas, jadi jika user ingin mengganti password >> nya mas bisa gunakan where nya username, tapi username nya kudu unique yah >> mas. >> >> >> Regards Ado >> >> >> >> ----- Original Message ----- >> *From:* Aceng Baharudin >> *To:* programmer-vb@ yahoogroups. com >> *Sent:* Wednesday, June 16, 2010 9:18 AM >> *Subject:* [programmer- vb] Membuat Form Password >> >> >> >> Dear All, >> >> Maaf mau minta bantuan kepada semua Senior yang ada di Millis ini. >> Saya mohon bantuannya untuk memberikan solusi dalam membuat Form Login >> yang isinya Username dan Password. akan tetapi Passwordnya bisa diganti >> apabila di kemudian hari User ingin mengganti Passwordnya. >> >> Mohon pencerahan untuk code-code nya! >> sebab saya hanya baru tahu password yang sifatnya statis, hanya satu kali >> saja dan tidak bisa diganti-ganti. >> >> Terima kasih atas perhatian dan bantuannya. >> >> Salam, >> Bahar >> >> >> .:: Group of Book Publishing - Kompas Gramedia >> >> >> >> >> > > > > > > > > > > > > >