Ngobrolin Kata Sandi
Ringkasan Episode
Bantu KoreksiEpisode Ngobrolin Web ke-122 membahas topik password secara komprehensif dari berbagai sisi: pengguna, developer front-end, hingga back-end. Diskusi dimulai dengan pentingnya password yang kuat dan unik untuk mencegah kebocoran data, yang masih menjadi salah satu top 10 OWASP security risks. Para host membahas praktik terbaik untuk pengguna seperti menggunakan password manager (Bitwarden, LastPass, bawaan browser), menghindari password yang sama di multiple services, dan memanfaatkan fitur password generator. Dari sisi developer, dibahas implementasi yang benar mulai dari penggunaan input type="password" yang semantik, atribut autocomplete yang proper, hingga teknik hashing dan salting di sisi server menggunakan library seperti bcrypt, Argon2, dan lain-lain. Episode ini juga menyinggung evolusi layanan autentikasi modern seperti Auth0, Firebase, Supabase, dan AuthJS yang mempermudah implementasi security tanpa harus membangun dari nol.
Poin-poin Utama
- •Password yang lemah seperti '123456' atau 'password' masih menjadi penyebab utama kebocoran data dan termasuk dalam top 10 OWASP security risks
- •Pengguna wajib menggunakan password manager (Bitwarden, LastPass, atau bawaan browser) untuk mengelola password yang kompleks dan unik untuk setiap service
- •Browser modern telah menggalakkan penggunaan password manager dengan fitur sinkronisasi antar device dan browser extension yang memudahkan autofill
- •Front-end developer harus menggunakan input type='password' secara semantik dan mengkombinasikannya dengan atribut autocomplete yang proper untuk UX yang baik
- •Password tidak boleh dikirim dalam plaintext dan harus di-hash di client-side sebelum dikirim ke server, meskipun hashing utama tetap dilakukan di server
- •Di sisi server, password harus di-hash menggunakan algoritma seperti bcrypt atau Argon2 dengan teknik salting untuk mencegah rainbow table attacks
- •Salt harus unik dan random untuk setiap user, tidak boleh diambil dari data yang predictable seperti username atau timestamp
- •Framework modern seperti Laravel, Node.js, dan AuthJS telah menyediakan library bawaan untuk password hashing dan verifikasi yang secure
- •Layanan autentikasi modern seperti Auth0, Firebase, Supabase, dan Cognito semakin mengurangi kebutuhan untuk membangun sistem autentikasi manual
- •Episode ini di-sponsor oleh Hacktivate (coding bootcamp) dan Nupea keyboard, dengan voting topik minggu depan adalah Design Pattern
[Music]
Selamat malam. Hai hai selamat.
Dutemu lagi kita di..
Hari Selasa.
Malam ya.
Hari Selasa waktunya.
Brolin web.
Brolin web.
Iya.
Balik lagi kita di jam 9.
Karena masih di bulan Ramadhan.
Gimana puasannya?
Mudah-mudahan lancar ya.
Komen temennya.
Sehat-sehat terus.
Terus nanti.
Iya.
Semoga.
Baru habis ujan.
Semoga nggak banjir.
Nggak ada bencana alam.
Lancar-lancar semuanya.
Yah.
Malam hari ini.
Nggak marah.
Nggak marah-marah.
Oh lo.
Senang harusnya bisa nyerok.
Selamat datang.
Hah?
Lihat transkrip lengkap (2499 segmen lagi)
Bisa nyerok.
Nyerok apa?
GSTH.
GSTH.
GSTH.
Iya bisa beli harga diskon.
Oh harga diskon ya.
Oh gitu ya.
Tricknya ya.
Oke oke oke.
Kecuali turun lagi ya nggak tahu.
Jangan lah jangan.
Nah ini udah musim.
Udah musim international break ya.
Musim international break juga ini.
Cuma temben ya.
Kali ini nggak bentruk sama pertandingan tim nas.
Tim nas itu.
Hari Kamis.
Kamis ya Kamis.
Temen.
Temen nggak bentruk.
Yang depan.
Selasa depan baru bentruk.
Indonesia jadi lolos nggak sih?
Ya nggak tahu.
Belum.
Makanya main dulu.
Belum.
Kan masih ngisihan.
Selamat malam Dwi.
Halo.
Kita masih mengira-ngira Dwi ini toh apa.
Dwi.
Dari berapa episode kemarin.
Apa ternyata kucing.
Itu kucing putina atau kucing jantan kira-kira.
Gimana mau dilihat.
Tidak bisa membedakan.
Selamat datang di episode ke 122.
Malam ini kita akan membahas tentang password.
Dari berbagai sisi.
Kata Sandi.
Password.
Dari baik dari kita sebagai pengguna gimana mungkin harus set password.
Terus mungkin dari sisi UI harus gimana.
Dari sisi UX harus gimana.
Sampai ke database.
Disimpan di database kayak gimana.
Pokoknya semua hal lah ya.
Dan password ini salah satu top 10 OWA security.
Oh iya masih ada hubungannya sama security kemarin ya minggu lalu.
Jadi salah satu faktor yang sering menyebabkan kebobolan ya.
Data kebobolan itu dari password.
Entah passwordnya terlalu gampang.
Karena passwordnya 123456.
Yang paling umum apa sih.
ABC 123 ya atau apa ya.
Admin ya.
Kita coba aja.
Kita coba aja.
Mungkin kita coba saya coba.
Ada satu ini kan.
Joko yang bikin perlipian kayak gitu.
Tapi sebelum itu pesan sponsor dulu.
Jadi episode ini disponsori oleh Hacktivate.
Kalau teman-teman yang tertarik mau ikutan coding bootcamp.
Mumpung masih puasa masih ada diskon.
Jadi ada dua bootcamp yang diskon.
Yang pertama full time bootcamp.
Yang bootcampnya itu setingkat sampai jumat.
Yang pagi sampai malam.
Itu diskonnya 10 juta rupiah.
Kalau yang kelas malam.
Itu diskonnya 4 juta rupiah.
Jadi langsung aja daftar.
Cari-cari tau informasinya ke Hacktivate.com.
HTTPS.2/Hacktivate.com
Langsung aja.
Di situ kan ada kolom.
Ada tombol untuk chat ya.
Kalau mau nanya-nanya bisa langsung di sana.
Kalau mau jadi instruktur.
Oh bisa.
Kalau mau jadi instruktur.
Cari carrier page-nya Hacktivate.
Ada aloh.
Ada beneran lagi.
Ada.
Ada dong.
Tapi gak tau lagi hiring atau enggak ya.
Maksudnya untuk yang instruktur ya.
Lagi hiring atau enggak.
Belum dilihat lagi.
Malam dari Australia.
Wah.
Ini jam 12.
Belum pernah.
Belum pernah.
Keren.
Keren mau nonton.
Belum pernah ke Australia.
Eh.
Lengkap loh.
Ada Eka, ada Dewi, ada Tri.
Kurang catur.
Please dong.
Kalau ada yang nonton.
Yang namanya catur.
Tolong.
Post di komen.
Biar lucu.
Eka, Dewi, Tri.
Catur.
5 apa?
Kurang catur sama panca.
4 catur.
Panca.
4 catur sama panca.
Luar biasa.
Kompakannya kalian namanya ya.
Kita kembali ke pembahasan tentang password.
Apa nih?
Ivan mau nunjukin apa?
Tadi kan katanya password apa yang paling sering.
Kita cek 1.
Namanya.
Ini.
Pernah dengar pastinya ya.
Have I been found?
Iya.
Ini sering sih.
Ya.
Kita coba aja.
Contohnya apa sih?
Password.
Password.
Password lah.
Password.
Kalau password kita password.
Oh, 21 juta kali.
21 juta.
Ini website-nya namanya Have I Been Found?
Ya.
Bentar saya copy paste dulu bentar ya.
Ya.
Copy paste ke.
Coba kalau 1 sampai 6.
1, 2, 3, 4, 5.
Oke.
Sedikit dulu ini sebelum kesana.
Kita.
Pasti website ini.
Password ini mengumpulkan database password dari situs-situs.
Data bridge.
Kena hack dan datanya di-share di.
Setengah dijual di tech web.
That way.
That way.
That way.
Itu ya.
Dan.
Orang yang di belakang ini mengumpulkan data-data password itu dan mereka membuat database sendiri.
Jadi kalau kita mau cek.
Da.
Pernahkah password kita.
Password ini.
Password dalam.
Di situs tertentu.
Dan situs-situs pernah dibobol.
Pernahkah password kita udah keshare ke orang lain.
Jadi kalau situs ini aja punya.
Berarti ya.
Pelaku-pelaku yang lain sudah punya.
Dan kita akan rentan dengan yang namanya dictionary attack.
Contohnya 1, 2, 3, 4, 5, 6.
Oh ditemukan 127 juta kali.
127 juta.
Jadi modus operandinya sih yang.
Dia gak tau.
Dia gak tau.
Dia gak tau.
Dia gak tau.
Database-nya berapa.
Ada gak sih?
Jadi maksudnya kalau udah masuk list itu rawan kena itu kan.
Yang tadi apa dictionary attack itu.
Modus operandinya adalah.
Dia masukin kayak apa.
Automate login random.
Login email kita.
Terus passwordnya pakai.
Dari list password itu ya.
Iya.
Namanya dictionary attack.
Dicoba semua dari atas satu persatu.
500.
Then version 7 arrive total 613 juta.
Riza Fahmy.
Ada gak sih yang pakai Riza Fahmy?
Coba tes.
Ih ada tiga kali.
Tiga kali.
Berarti tiga kali ya.
Ada tiga record.
Tiga kasus yang masuk.
Gue aja yang punya nama itu gak pernah pakai password itu.
Tapi nama Mas Riza gak unik kan.
Ada orang lain yang punya nama itu.
Atau memang fansnya Mas Riza.
Itu juga bisa ya.
Iya.
Biasanya kan kalau anak-anak I love you gitu.
Ada lah.
Jangan pakai kata-kata yang umum gitu lah.
Pasti udah ada lah.
Tanggal lahir.
Paling sering salah satu yang paling sering juga tanggal lahir kan.
Ini saya 31 februari.
Coba tanggal lahir Pancasila.
30 februari.
Tanggal lahir Pancasila.
Berapa ya?
17 Agustus aja lah 17 08 1 9 45.
Ada lagi.
Itu ada 45 lagi.
Oh iya.
Bukan cuma.
Jadi kita gak usah repot-repot ke website itu.
Di Chrome browser.
Sekarang juga udah punya built-in fitur kayak gini nih.
Jadi kalau misalnya gue taunya gara-gara punya test account dong.
Test account ya pokoknya di lokal sama di password protected environment.
Emang test account 123456.
Login sukses.
Dari Chrome-nya muncul warning-nya.
Password ini sudah sering muncul di data bridge.
Dia nawarin untuk obat passwordnya.
Bisa ada sedikit pengamanannya juga ya.
Udah ngebantu banget sih itu.
Terutama buat orang awam ya.
Yang bukan developer.
Yang di luar circle kita lah.
Gak ngerti have I been called gitu.
Mirip dengan itu.
Apa namanya?
Kalau di one password dia ngasih yang namanya watchtower.
Jadi dia bisa ngasih tau.
Password kita itu.
Overall password string yang kita punya di database one password itu.
Sudah berapa kali ada yang sudah dipakai.
Reusable di tempat lain.
Dan sudah kompromis.
Dan kita disuruh untuk ganti.
Itu salah satu password manager ya.
Tapi ada cerita itu juga yang berkaitan dengan Eka kan.
Biasanya untuk localhost kan.
Masukin test account gitu kan.
Dulu waktu tahun 2015.
Waktu masih jadi developer gitu ya.
Kita tuh bertiga kan.
Waktu masih jadi developer.
Waktu itu ya.
Terus ada temen yang istilahnya paling jago lah.
Dia yang set up semua autentikasi.
Jadi kalau pake test account dia.
Pasti passwordnya itu udah generic banget gitu.
Nickname dia sama ujungnya 123.
Terus kita bertiga.
Nah jangan kasih tau lah.
Nggak boleh lah.
Nanti bocor.
Terus kan kita bertiga.
Yang dua iseng nih.
Gue sama temen iseng.
Ini jangan-jangan passwordnya dipake.
Di account beneran.
Kita coba lah. Kita tau emailnya kan.
Kita coba masuk facebook beneran.
Bisa masuk.
Terus abis itu kita isengin.
Buka chat ke diri sendiri.
"Halo, saya si ini dari masa depan."
"Dari masa depan."
"Masuk kamu nanti kebobolan."
Abis dia tau. Ujungnya gak tau dia beneran baca atau nggak.
Gitu gak tau sih ceritanya.
Sampai sekarang masih misteri.
Jadi ya, gitu lah.
Jadi harap berhati-hati.
"Oh iya saya juga pake Npass."
"Saya juga pake Npass."
Gue belum pernah denger Npass dong.
Npass itu kalau untuk desktop.
Dia free.
Tapi yang untuk mobilannya dia berbayar.
Tapi bayarnya one time.
Lumayan lah.
Nggak semahal one pass.
Karena dulu pengen one pass.
Cuman dulu one pass itu baru ada di iOS dan Mac OS.
Belum ada di OS dan di Android dulu.
Tapi setelah langganan Npass dia keluar.
Biasanya begitu ya.
Kalau udah beli biasanya yang lain tiba-tiba muncul.
Jadi ya udahlah, sudah terlanjur.
Kita bahas password yang sering digunakan.
Terus password yang aman tuh kayak gimana sih?
Ada gak sih kriteria password yang aman?
Subjektif gak sih?
Password yang aman, kalau sekarang udah di delegasikan ke password manager.
Tinggal generate aja.
Random ya?
Iya, randomize.
Kalau dulu sebelum ada password manager itu biasanya ada rumusnya.
Masih-masing orang punya rumus.
Misalkan nih nama website-nya ditambah apa?
Ditambah apa?
Eka, anya, empat.
Biar mengingat gitu.
Jadi gak perlu ditulis.
Diikat aja oh website-nya Google loh.
Berarti Google minus Eka.
Google plus Eka, empat.
Enya besar.
Tapi tetep aja sebetulnya sekali kebobol, sekali ketahuan misalnya.
Oh iya, pattern-nya udah kelihatan.
Kalau ada manusia, kalau mesin gak bisa tau kan.
Kalau cuma kopas dari list data.
Tapi kalau kebobol ke manusia ya gampang.
Google tinggal diganti.
Misalnya password Apple, ya udah tinggal Apple.
Enya besar, K, empat, ya dan seterusnya kan.
Dipikir sama juga bohong, gue dulu kayak gitu tuh empat lama.
Dan ngerasa, wah I'm smart.
Terus oh enggak.
Ada yang juga ini, digeser, shift 1.
Jadi misalkan kan kalau QRT kan.
Iya QRT misalkan.
Password-nya Q-W-E-R-T-Y.
Digeser satu, jadi W-E-R-T-E-U.
Iya ada yang begitu.
Digeser ke kiri atau digeser ke kanan.
Macam-macam, layang banyak.
Kalau digeser ke kiri gak mungkin ya ada tab.
Ada game password.
Pernah lihat?
Ada game password.
Oh ini ya Neil.fun ini.
Iya.
Coba kita main.
Coba, coba, coba.
Mau pakai siapa?
Present, present.
Ntar ya.
Segue atau Mas Riza?
Mas Riza aja.
Dibas lah siapa aja.
Main sama-sama aja nih, ayo.
Please choose a password.
Pasti dikerjain nih KK.
Your password masih include number.
Satu.
R-nya besar.
Special Character?
A-nya, Ed.
A-nya diganti jadi Ed.
Satu dua tiganya gak boleh ya.
Digit in your password.
Dikerjain tuh passwordnya.
Harus, harus, kalau digitain harus dua lima gitu.
Iya.
Ini baru, baru enam nih.
Gak bisa.
Ya enggak lima, sudah setelah lima.
Berapa dong?
Baru berapa nih?
Tangguh, tangguh sembilan.
Sembilan, sembilan, sembilan lagi.
Sembilan juga.
Bukan.
Oh itu, itu, itu.
Ada counternya di kanan.
Hah?
Enggak.
Oh itu jumlahan.
Lengsnya, lengsnya.
Ini kan baru satu, dua, tiga, empat.
Berarti kan baru berapa nih?
Tiga, enam, sepuluh.
Angka lima aja lima kali.
Lima, lima, lima, lima.
Lima, lima, lima.
Dua, tiga, empat, lima.
Oh iya.
Your password must include the month of the year.
Pasti digerjain.
Month of the year, nol dua gitu.
Enggak kan?
Februari.
Ini angka kan?
Dua belas.
Kata-kata timenya deh.
Menanda.
Enggak kan?
Enggak, enggak.
Harus kosong dua misalnya.
Nggak bisa.
Nggak bisa.
Nggak bisa.
Malah ini yang error lagi tuh.
Iya pasti kita harus perbaiki lagi.
Kita punya rumus.
Waduh.
Itu aja nggak masuk.
Buka aja search-nya.
Apa?
Buka lihat Javascript-nya lah.
Ini, ini Javascript.
Ini client-side ya?
Pakai Nux loh dia.
Application.
Application.
Source.
Eh, nggak ada ya.
Lihat file-nya gimana sih?
File-nya di ini, source.
Buka di resource.
Source.
Ini.
Password game.
Ad-load.
Oh, ad-load sih.
Itu iklannya.
Nggak ada kali.
Itu bawanya password game yang orange.
Ini Nux, dia S2.
Dia pakai Nux.
Iya.
Nah, tuh state-ks apa tuh?
Tuh, 55505
tuh kata Mas Dito tuh.
Hah?
Siapa tahu?
Rahasia 55505 tuh.
Oh, udah jumpa ya?
Lima, lima-nya ada berapa tuh?
Lima-nya ada lima.
Lima-nya 4 kali, terus 05.
Oh, 4.
Lima-nya 4 kali.
Hehehehe.
Tuh, nggak bisa.
Kata-kata diketik.
Desember coba.
Desember.
Hah? Desember?
Coba aja.
Desember.
Romanmural.
V.
Hehehehehehe.
Hehehehehehe.
Hehehehehehe.
Hehehehehehe.
Multiplied to 35.
Hehehehehe.
Untuk janiturnya, Pak.
Udah.
Ini kan sebetulnya.
Nggak, ini sarkas aja, berjanjakan.
Oh, sarkas.
Nggak, maksudnya apa?
Sunking password safety.
Itu kan, ya kan,
aplikasi-aplikasi kan berusaha
ngerapin password safety, kan?
Hmm.
Macam-macam aplikasi.
Bikin shared yang makin lama,
makin sulit, kan?
Pertamanya, kan cuma min-max.
Apa? Minimal,
beberapa karakter. Terus harus ada
uppercase, lowercase. Lama-lama
harus ada angkanya. Lama-lama
harus ada simbolnya yang
makin lama malah bikin user
makin kesulitan.
Ayo, lagi-lagi.
12 karakter, 16 karakter lagi,
20 hingga.
Sekarang kan udah mulai obsolete juga, kan?
Karena password generator, kita tinggal nyentang-nyentang
settingnya, kan? Include special character,
campur
lowercase, uppercase, dan lain-lain.
Kalau dulu kan
biasanya ada, cuman ada
minimum password, misalkan.
Minimum 5 atau minimum 8
sekarang ya, yang aman ya. Minimum 8.
Tapi sekarang akhir-akhir ini,
lihat, ada beberapa website
yang membatasi maksimumnya.
Maksimum
18.
Nggak boleh lebih.
Ada. Kalau dulu kan
biasanya.
Struktur datanya.
Jadi storage.
Storage-nya ya.
Biar nggak menuruhin.
Biar nggak menuruhin.
Gimana kalau password yang
bisa boleh ada
special character seperti
dollar.
Kemaren tuh sempet rame, tuh.
Masa sih?
Jadi justru ada
satu aplikasi
yang melarang menggunakan
special character.
Terutama special character
yang berhubungan dengan coding.
Kayak dollar.
Berarti janjiannya
pakai plaintext tuh.
Apa plainstring?
Enggak ngikutin ya. Yang itu.
Yang aplikasi
yang buat perpajakan.
Korteks sih ya.
Awalnya itu.
Bikin password itu nggak boleh ada
special character. Makanya langsung banyak
yang ngebak, oh ini plaintext nih.
Karena mengganggu
coding.
Terevaluasi.
Para, para, para, para.
Ya, begitulah.
Oke.
Nah, dari sisi
kan, kalau dari sisi password
kita kan syaratnya
supaya password yang bagus itu
yang pertama, susah ditebak.
Jadi harus
minimal
characternya banyak.
Ya, 8, 10, 12.
Biasanya segitu kan. Lalu
kombinasi yang terlalu besar,
terlalu kecil,
angka,
spasi.
Spasi jarang deh.
Karena jadi susah bacanya.
Kalau spasinya di depan. Kita
yang salah baca.
Atau kadang ada yang ngetrim.
Ada yang ngetrim.
Di trim. Ada.
Spasinya di tengah, jangan di ujung.
Oh iya, kalau di tengah, di ujung-ujung kan
ada yang sistemnya ngetrim. Jadinya
jadi rancu.
Lalu
password itu
juga harus unik kan.
Udah unik, panjang, susah ditebak.
Sehingga susah.
Jangan menggunakan password yang sama di
website atau di service yang berbeda.
Iya. Lalu
apa namanya?
Dari sisi
karena harus kompleks
password itu, makanya
di tahun 2023
apa 2024
browser-browser mulai pada
memberikan
ini kan, memberikan
akses untuk
password manager kan, browser kan.
Ya, ya, ya.
Galak tuh. Maksudnya
menggalakan password manager. Masih-masih ada.
Dan bisa singkron antar browser satu
sama lainnya.
Kalau misalnya pakai Firefox,
bisa singkron
Firefox-nya ke device
sesama networknya,
Firefox. Chrome juga
demikian dengan Android.
iPhone dengan Safari-nya.
Sehingga
apa namanya? Kayak password manager
itu menjadi sebuah
kebutuhan.
Keharusan.
Harus pilih lah salah satu. Mau pakai yang
mana ya. Dari Windows juga
ada yang bawaan browser,
ada yang layanan external.
Layanan external, ya itu tadi
kayak LastPass, Bitwarden.
Jadi kalau kita, dan itu
semua kan udah ada browser extension-nya
kan. Jadi kita pakai Chrome.
Kita bisa install
Bitwarden extension untuk Chrome.
Safari juga ada extension-nya. Jadi kita
nge-store, nyimpan password-nya di
satu tempat, tapi bisa digunakan di
semua browser
dan semua device.
Nah, itu kan dari sisi
user. Pakailah
password manager dan selalu gunakan
password yang random
selalu di mana-mana.
Lalu, kalau dari sisi
developer,
kalau mulai dari sisi front-end-nya dulu,
ada apa nih
yang perlu kita, kita
tekankan
kalau kita sebagai front-end developer.
UX-nya kan, UI-nya
kan, seperti apa.
Coba buka link yang input.
Password string.
Ada nggak sih? Yang pasti
yang pasti
gunakan
sesuai semantiknya.
Gunakan sesuai semantik.
Jadi kalau, kalau aplikasinya
apa, kalau memang kita mau
input atau
minta masukkan dari user
password, gitu ya.
Gunakan, input type password.
Jangan sembarangan. Jangan
cuma input type text, terus
kalau user ngetik, apa
detek key event, terus key
value-nya diganti jadi *,
capek sendiri kan.
Mending pake input type password,
langsung di sensor.
Betul. Dan kelebihannya adalah
ketika user menggunakan
password manager,
akan muncul
pilihannya. Eh, tapi jangan lupa
di kombinasi sama atribut
autocomplete. Coba buka link
sebetulnya tuh.
Oh iya.
Ada di ini.
Jadi apa? Sebetulnya input type
password default pun
mungkin ada kemungkinan bisa
buat ngetrigger
aplikasi atau extension
password manager.
Tapi ada granular control.
Jadi untuk control yang lebih detail
lagi, kita, kita bisa pakai
atribut autocomplete.
Nah, itu kenapa
ada autocomplete? Karena
apa? Biar field-field
yang digunakan juga sesuai.
Kita ngasih
kayak prompt lah.
Kayak prompt untuk password
manager atau
semacamnya. Autofield
ini field untuk apa sih?
Terus bisa kita matiin juga autocomplete
off. Itu kasusnya misalnya
sign up form kan. Kita
baru mau bikin akun
baru. Ya kan? Nggak mungkin
di autocomplete. Jadi bisa kita matiin
juga.
Jadi bisa pakai
off atau on. Atau
itu tuh dibawah. Ordered list
of space-separated
tokens. Tokennya macam-macam
kayak first name, last name,
bla-bla-bla. Scroll ke bawah.
Ya. Ini
sangat penting terutama untuk
yang menggunakan melalui
handphone, atau
mobile web ya. Kadang-kadang
suka keselelu ketemu web
yang
username, password
yang passwordnya itu tidak
muncul. Begitu kita klik
nggak muncul pilihan untuk
password manager.
Kita harus ke password manager
masuk
login. Login,
copy passwordnya.
Ketik website-nya.
Oh iya, ngeser sama website-nya.
Copy passwordnya.
Copy passwordnya, balik lagi ke
browser.
Ya. Sedih sih.
Sedih.
Jadi pastikan menggunakan
copy passwordnya.
Autocomplete sama input type
password. Yes.
Itu harus
banget kalau jaman sekarang yang
terutama buat yang menggunakan
password manager. Teman-teman di sini udah pakai
manager semua kan ya? Ada yang
belum kan?
Ada yang masih ditulis si kertas?
Di kertas.
Di balik keyboard.
Biasanya pakai sticky note.
Sticky note ya.
Ditempel di bawah monitor.
Iya. Password Windows-nya ditempel
di sticky note supaya kalau mau
login ke Windows-nya.
Oh, udah nggak lupa.
Jadi passwordnya itu selalu di reset,
tapi ditulis di sticky note.
Passwordnya secure,
tapi ditulis di sticky note.
Sama aja.
Nah, dimasukin ke Notion.
Kenapa ini?
Terus Notion-nya public-nya?
Private ya. Harusnya ya.
Public.
Password Notion-nya dimasukin
ke Notion nggak?
Sebentar.
Kalau ditaro di Notion,
berarti kalau misalkan
akses sesuatu, misalkan
kita mau gmail.com, terus dia
minta password. Kita buka Notion dulu
gitu ya. Habis itu di-search gitu ya.
Bisa ya?
Iya, kayak password manager.
Cuma plaintext.
Tapi kan itu, search-nya ke seluruh
dokumen kan?
Bisa di satu dokumen aja search-nya juga ya?
Bisa.
Bisa.
Dia ditaro di notes gitu ya?
Tapi kan itu plaintext ya?
Harus berhati-hati.
Kenapa?
Harus berhati-hati
karena kalau tiba-tiba nggak sengaja kita
publish, terus temen
ngeliat, "Lah ini password semua nih."
Lumayan, dilapor ke
"Have I Been Found?"
Lumayan.
Mencing dilapor.
Dia cobain masukin
impersonate.
Terus nanti lagi
di-message ke Facebook
saya dari masa depan.
Saya dari masa depan.
Kalau report nggak sih? Karena nggak ada extension
buat browser. Jadi kalau
yang dibilang Mas Riza
tadi kan flow-nya sama, kalau lagi
buka di HP,
harus login, kan nggak bisa autocomplete
tuh. Jadi harus tutup
dulu browser-nya, buka Notion,
buka table
atau database atau note yang
isi password, nge-serve dulu
dan seterusnya.
Yang sengsara, kalau begitu buka Notion
harus login juga.
Nah itu tadi, makanya
gue tanya password Notion-nya
ditaro di Notion juga.
Sama sih, kalau itu
password manager juga kita harus ingat
satu password. Tapi minimal
sekarang password manager ada pakai
sidik gari kan, kalau yang punya itu kan.
Tapi kan backup-nya,
fallback-nya tetap ada
password-nya. Ya tetap.
Rekomendasi
password manager
kalau yang baru rekomendasi
kalau mau pakai yang
sudah proven. Maksudnya yang
perusahaan-perusahaan gede lah, kayak Google.
Chrome ada kan,
pakai aja yang itu.
Terus yang gratis kan. Ini kan di safari ini.
Ya nggak, maksudnya kekurangan
dan kelebihan-nya
maksudnya nggak ada extension
Chrome password manager untuk safari
kan. Ya dan sebaliknya.
Eh tapi kalau keychain,
kalau Apple,
kalau macOS
punya ekosistem Apple
di keychain itu mungkin integrate
ke semua browser ya.
Buat apa?
Buat password manager di web.
Iya safari,
kalau kita buka safari,
kita buka safari,
itu bakal di prompting.
Ya pokoknya ada UI-nya sendiri untuk password manager.
Dan itu akan dengan
sendirinya di save ke keychain,
ke sync ke iCloud kita.
Jadi misalnya kita ganti iPhone,
ganti iPhone baru.
Ya udah, password-nya ada semua,
kita bisa login ke semua.
Tergantung.
iPhone-nya, waktu sudah kita
ganti iPhone-nya sudah bayar dia.
Kayaknya belum, kalau belum nggak bisa.
Jangan kesana dong.
Udah legal belum,
iPhone-nya udah ya, udah legal
bisa dijual melikan ya.
Kalau belum kan nggak boleh.
Cepet nggak boleh kan.
Kelanggan
BM, black market iPhone.
Itu kalau berdasarkan
browser atau OS ya,
kalau yang layanan khusus
dedicated password manager,
kan ada apa?
Tadi Npass-nya.
Dulu gue pakai
Npass.
Tapi Npass sering banget liking.
Jadi harus hati-hati.
Teman-teman harus cari...
Npass dulu pernah, Npass dulu pernah kejadian.
Sering.
Sama UI-nya, nggak tahu lah,
kayak agak awkward gitu lah.
Dulu punya pertama banget
kenal password manager, gue pakai
Npass. Terus sekitar
3 tahunan lalu pindah Bitwarden.
Udah nggak pernah cari-cari lagi.
Nggak pernah pindah lagi.
Self-hosted ya.
Self-hosted,
Bitwarden bisa kan.
Punya server sendiri.
Self-hosted.
Oh, self-hosted juga bisa.
Cuma gue nggak senyat gitu.
Sampai sekarang pakai yang free, aman-aman aja.
Dan salah satu fitur menariknya,
ini yang bisa nyambung ke topik lain,
udah support Pusky juga.
Pusky, iya. Tadi ada yang nanya
perkembangan Pusky ini.
Si apa? The Great Solomon.
Nanti kita bahas ya.
Sabar-sabar.
Tadi di komen juga ada apa nih? Passport.
Banyak ya.
Ada Passport, ada Helogin.
Namanya Eka.
Ada Helogin,
ini juga baru denger nih. Helogin.
Ini,
ada Helogin yang kayak Hey-nya
punya si itu nggak sih?
Bisa lihat password link?
DHH.
Bukan.
Oh, ini info yang tadi nih.
Apple Kitchen udah pindah ke Apple Password sekarang.
Tapi bukaannya di Passcode.
Jadi kalau orang inti
Passcode kita, dia bisa buka password.
Bahaya ya? Passcode
iPhone.
Penasaran juga nih.
Helogin.
Baru denger.
Oh, password manager without
password master password.
Wah, ini menarik.
Belum buka, belum share-in.
Oh ya, sorry.
Helogin.com
Ininya menarik ya.
Password manager without
master password.
Pake
to-fighter authentication ya.
Jadi kalau
homologin harus pake 2FE ya?
Ada pricing?
No, gratis.
Iya, ada free tier.
User management.
Oh, ini buat bisnis ya. Berarti yang gratis
pun udah bisa ya.
Ini ada mobile-nya nggak?
Aplikasi mobile-nya ada nggak?
Itu tulisan yang ada tuh. Yang di free.
Oh, confirm.
Smartphone ya. Sorry, bukan mobile.
Bukan-bukan.
Android atau iOS-nya harusnya ada?
Nggak ada ya. Oh, ada nih.
Ada-ada.
Smartwatch juga bisa.
Mantap.
Extension-nya juga ada buat Chrome, Firefox,
Safari.
Udah lengkap ya? Udah lengkap, aman.
Oke. Menarik.
Masa pindah lagi? Nggak.
Ya nggak, nggak usah FOMO.
Ini buat teman-teman
yang nonton, yang masih lagi
menonton. Oke.
Password. Ini banyak
yang baru dengar juga nih.
Ini ya, open source password manager
for teams.
Kalau mau, gini misalnya, pakenya
utama kan one password.
Terus password-nya buat one password
itu disimpan di password.
Password disimpan di...
Ngapain?
Terakhir banget
semua listnya disimpan di
Notion.
Masa-masa dipublikin, gitu deh.
Iya.
Nah, ini GDPR ya.
Feature-nya.
Oh, ini password
ini kita bisa self-hosted
atau not managed.
Ya, dan apa?
Perspektifnya buat team ya
ini. Ya, ya, ya.
Für login dan password
ini. Iya sih.
Dua-duanya ya? Gua aja.
Gua sampe sekarang password antar team. Oh, iya.
Di tempatnya.
Masih pake Slack.
Iya. Biasanya kita kirim
pasuat kan plain text ya.
Ini kirim langsung lewat WhatsApp, gitu.
Iya.
Mungkin aja, gitu.
Atau
kirim lewat email username
password, gitu.
Bitwarden
Eka pernah nyoba Bitwarden?
Pakai malah.
Bitwarden
memuaskan. Apa? Maksudnya
oke kok. Retier-nya juga udah oke.
Maksudnya standalone aplikasinya ada.
Extension untuk
semua browser yang umum ada.
Android.
Ada app-nya. IOS ada.
Uja support.
Pasti juga.
Dan dia open source ya
kalau nggak salah ya Bitwarden ya?
Itu tadi. Apa?
Kalau yang
standarnya hosted di club
mereka sih ya nggak tahu. Cuma
open source yang buat self-hosted.
Ada GitHub-nya nggak?
Bukan open source kali ya?
Freeware kali ya?
Open source apa freeware?
Iya. Antara dua.
Free atau open source. Klien-nya open.
Server-nya open.
Oh. Open semua.
Open semua ini.
Bisa self-hosted.
Bukan masalah self-hosted aja sih.
Klien-nya juga
open source.
Ini menarik nih.
Segitu.
Percaya diri mereka.
Membangun crypto.
Datanya open nggak?
Anjir serem banget.
Tapi sebenarnya di pikir-pikir bahaya
nggak sih kalau password
manager open source. Maksudnya
kontennya bisa dikelajarin.
Ya di satu sisi itu bisa membuktiin
kompetensi mereka kan. Tapi kan
kalau orang yang hacker-hacker
maksudnya lagi berusaha cari celah
bisa melajarin kode mereka lebih
gampang di tech classic.
Ada juga, ya yang
bangun ini mungkin juga sudah ahli security
yang peduli soal
jadi sistem
crypto
bukan cryptocurrency, crypto
cryptography.
Cryptography-nya ya sudah dilakukan
sedemikian.
Maksimal mungkin.
Dan mereka pasti bukan kayak itu ya.
Apa namanya?
Box Bounty.
Box Bounty.
Dan data yang mereka
simpan kan mungkin sudah nggak ada lagi
password kita. Password kita sudah di hash.
Sedemikian lupa.
Di encrypt.
Dan saat install server
private key-nya itu hanya disimpan
di server-nya kita. Nggak ada tempat lain.
Kalau private key-nya
yang hilang ya itu salahnya kita.
Atau misalnya private key-nya yang bocor
itu salah kita.
Bukan salah
si Bitwarden-nya.
Bukan salah si Bitwarden-nya.
Ada pertanyaan yang menarik juga nih.
Password manager berbasis blockchain
kita belum tahu. Ada contoh
ini nggak?
Apakah lebih aman? Nggak tahu juga.
Kenapa harus di blockchain?
Supaya apa? Kalau blockchain itu kan dia lebihnya
bedanya sifatnya
imoutable. Garingan network
sama device lain juga kan?
Bukan. Sifatnya imoutable
blockchain itu. Imoutable kan.
Kalau sudah di sharing, misalkan
di store password, habis itu nggak bisa
berubah gitu. Nggak bisa berubah.
Funksinya apa gitu? Funksinya
apa yang membuat itu lebih aman gitu?
Kita nggak tahu sih soalnya
kita belum mendalami
kesana sih.
Teknologi yang dipakai sama
blockchain kan memang cryptografinya
untuk menghashing itu.
Tapi datanya kan imoutable.
Sehingga kalau password disimpan
dalam imoutable...
Apa dong?
Belum nangkap saya.
Oh kirain.
Mungkin ada sesuatu yang kita nggak tahu.
Kirain mau ngelanjutin kalimat.
Iya.
Lagi mikir-lagi mikir.
Apa ya?
Tapi menarik untuk
dikulik. Mungkin
suatu saat kita perlu cari orang yang
benar-benar paham
blockchain. Oh passwordnya
berarti itu. Secure banget.
Jadi kalau mau di has itu harus
menggunakan GPU kan?
Mahal juga
kayaknya.
Malah repot.
Malah repot ya.
Oke.
Sebelum lupa ya.
Soal password.
Jangan sampai...
Meskipun kita sudah berusaha
aman tetapi kita pakai
network yang terbuka nih.
Wi-Fi public
yang nggak pakai encryption.
Dan
situs tujuan yang kita pakai nggak ada
HTTPS-nya.
Jadi password yang lewat
di network itu akan
plaintext.
Jadi bisa disniffing.
Jadi kalau misalkan
mau akses kayak
mobile banking atau
e-banking
jangan di Wi-Fi
di kafe.
Jangan pakai VPN.
Di rumah aja.
Ya atau pakai VPN deh.
Pakai VPN.
Jangan pakai jaringan mobile.
Jangan pakai
jaringan mobile.
Jangan pakai public
access Wi-Fi.
Yang open.
Biasanya banyak itu
Wi-Fi.
Biasanya
kalau misalnya kita ke kafe
Wi-Fi-nya open.
Tapi kan nanti setelah masuk ke Wi-Fi-nya
baru muncul pop-up-nya.
Kalau mau kita masukin password.
Tapi kan Wi-Fi-nya open.
Gak ada WPA2 security-nya.
WPA2 atau WPA.
Gak ada password-nya.
Maksudnya, data yang lewat
via radio cryptocurrency itu
itu telanjang.
Gak ada enkripsinya.
Bisa dibaca dengan kata telanjang.
Kita merasa itu aman.
Karena sudah pakai login.
Loginnya via pop-up.
Sebenarnya tidak.
Traffic datanya
yang gak aman.
Traffic datanya yang gak aman.
Nah dan itu biasanya kan nih
public place yang
tempat umum yang banyak orang ya.
Kayak airport.
Starbucks.
Hotel.
Hotel termasuk ya?
Ya ada hotel yang pakai
begituan.
Hotel sering sih.
Biasanya nomor kamar kita
password-nya last name-nya kita.
Biasanya.
Itu secure gak?
Tanjang.
Tapi Wi-Fi-nya sendiri bisa langsung
konek.
Oh iya langsung konek.
Saya kalau ke hotel bersama
keluarga biasanya saya bawa Wi-Fi-nya
saya sendiri.
Biasanya Wi-Fi.
Colokan LAN.
Saya bikin pakai Wi-Fi sendiri
dan saya konek ke Wi-Fi sendiri.
Wi-Fi-nya saya ada
VPN
ke server saya sendiri.
Jadi semua anggota keluarga
saya yang pakai buat
net.
Mudah-mudahan.
Niat sekali ya.
Mau liburan aja harus
bawa perangkapan segitunya.
Mumpung sudah banyak sekalian bawa-nya
bawa nambah Wi-Fi gak?
Sama aja jadinya.
Ya gak nambah banyak kalau udah punya.
Kalau yang belum punya kan harus beli dulu.
Kan kecil mas
gak usah yang segede, gak usah yang full.
Yang segini aja gitu loh.
Harganya kan gak
kecil.
Anyway balik ke password.
Itu kan dari sisi front-end.
Pakailah yang sudah
ready ya web API.
Yang sudah ready.
Kemudian
secara UI dan UX
follow aja yang sudah best standard practice.
Gak usah dibuat aneh-aneh kalau
kadang ada yang password strength.
Saya gak tahu ada gak sih yang
menyediakan password strength gitu.
Ya kadang lihat.
Untungnya
sekarang makin jarang ya.
Sekarang bukannya
orang udah
lebih banyak yang menggunakan
service ya. Kayak Augero,
Firebase, apalagi
Supabase.
Macam-macam
Cognito, ada
banyak kan sekarang.
Ada macam-macam sekarang banyak ya.
Masih kayaknya orang udah
semakin...
Betul.
Gak menghandle autentikasi.
Siapa sih yang masih bikin login manual.
Kayaknya sekarang udah gak ada ya.
Antara satu udah pake service, kedua mungkin udah
disediakan sama framework kayak Laravel,
Phoenix, Ruby on Res, dan lain-lain.
Dan udah ada.
Jadi
cuman sekali lagi
tetep harus tahu ya cara kerjanya.
Jangan sampai hanya menggunakan
aja.
Lalu, kalo
jelas sisi front-end.
Ya, ngirimnya itu.
Pas user udah nge-tick password,
kita kirimnya kan gak boleh, gak mungkin
pake plaintext yangnya.
Nah, itu berarti buka link
yang tentang Salted itu.
Eh, gak deh.
Harus dikasih garam ya. Sebelum ngirimin password,
harus dikasih garam.
Apa ini? Inspektor Laravel
password? Itu Laravel sih.
Bukan, belum ada deh linknya
tentang... Oh, belum ada.
Kalau gak salah nih ya, kalo kita pake
tipe password yang dikirimkan itu
gak bisa disniffing loh lewat
HTTP post.
Ya maksudnya,
di DevTool
gak keliatan.
Tipe password.
Coba deh.
Kalau kita punya password.
Iya.
Terus bikin form.
Enggak, yang tadi aja.
I have been found kan itu
password kan?
Kelihatan gak?
Ini linknya yang proper
tentang hashing
dan salting.
Ini kan password kan? Ini gak bisa keliatan.
Kita liatinya di mana?
Network.
Gak keliatan, maksudnya di mana?
Oh iya, sorry.
Kita liatinya di mana?
Di Network.
Ya, Network sama Doc.
Eh, gak tau. Coba aja.
Dia ajak sejak sih.
Pencet dulu, pound.
Udah?
All? Ini?
Iya.
Di...
Get. Kok get?
Loh, itu gak lama aja kan.
Coba lagi.
Try.
Get.
Get.
Postnya gak ada ya?
Ini formnya apa?
Input.
MethodPost.
Di Network gak keliatan?
Waktu di Android?
Enggak.
Coba ya.
Nah, ini dia post dulu kan?
Diklir dulu. Diklir.
Diklir kan?
1, 2, 3, 4, 5, 6.
Gak ada.
Itu yang 7C parat bentuk apa isinya?
Get.
Oh, ini cuma ngambil...
response nya apa?
Pake API.
Dia pake...
Response nya apa?
Response.
Apa ini?
Dia ini, dia hash.
Eh, dia encrypt.
Dia lewat ini.
Fetch nya...
Koneksinya lewat ini dia.
Kayaknya lewat...
Lewat, lewat, lewat, lewat.
Background.
Background fetch.
Gak ada ya?
Gak ada. Udah lama.
Input type, password.
Yang di MDN.
Ini.
Bukanya dimana nih?
Langsung.
Gak bisa ya.
Itu output itu kalo...
Ini output.
Kita gak bisa buka...
Gak bisa buka DevTool disini.
Bukan iframe?
Bukan iframe?
Iframe.
Klik kanan, buka ini nya, buka runner nya.
Di new tab.
New tab?
Di iframe, iframe itu kan ada...
Iframe HTTPS 4886.
4886.
Ini.
Gini.
Mana?
Gak ada, kosong.
Sebor.
Gak kelihatan.
Ya udahlah, mungkin temen-temen...
Kalau gak salah sih gak kelihatan ya.
Coba saya cari dulu.
Network coba ya.
Kita coba ini ya.
Ini tes.
1, 2, 3, 4, 5, 6, 7, 8.
1, 2, 3, 4, 5, 6, 7, 8.
1, 2, 3, 4, 5, 6, 7, 8.
1, 2, 3, 4, 5, 6, 7, 8.
Ya coba saya...
Gak ada dia.
Dia kan gak ada server nya.
Oh ya dia gak ngirim.
Dia kantong UI doang.
Coba saya create.
Gak bisa, gak bisa.
Lanjut aja dulu saya coba create ini aja.
Nah.
Kita liat yang ini ya.
Apa namanya?
Kita liat yang ini.
Hashing dan salting.
Ini kayak...
Ini bukan framework spesifik ya.
Ini kayak konsepnya aja dulu.
Ya, jadi...
Ada perbedaan antara...
Sesuatu atau teks...
Yang bisa di-encode dan di-decode.
Dua arah kan.
Jadi kita bisa encode.
Terus di-code.
Ada yang hanya satu arah.
Jadi hanya bisa di-encode, tapi gak bisa di-decode.
Nah hashing dan salting ini bagian dari itu ya.
Jadi...
Kita bisa mengubah teks yang tadinya
teks bermakna.
Misalkan halo apa kabar.
Kemudian di-encode jadi...
Jadi apa ya...
Seperti random gitu ya. Walaupun bukan random ya.
Jadi angka-angka acak gitu.
Tapi gak bisa dibalikin.
Kita gak...
Kalau sudah di-encode.
Gak bisa kita balikin untuk kita baca lagi.
Kembali ke teks semula.
Itu yang membedakan antara...
Encode dan hashing.
Kurang gede.
What is hashing? Nah ini...
Nah, ini penjelasan yang...
Kalau menurut gue lumayan...
Gampang dicerna sih.
Sama siapapun yang walaupun gak terlalu...
Ngerti kritografi.
Dan lain-lain.
Kayak maksudnya ini practical use-nya.
Buat kita yang...
Misalnya ngurus frontend.
Atau fullstep.
Jadi dari password yang...
Plain.
Yang ada di user.
Dia masukin passwordnya.
Itu di hash.
Dan jadinya seperti ini.
Dan gak bisa dibalikin.
Jadi dari hash ke password gak bisa dibalik.
Jadi...
Ini memastikan bahwa...
Yang punya server gak bisa tahu passwordnya user.
Itu penting.
Karena...
Dan misalnya ada kasus data kebobolan atau apa.
Yang gak langsung...
Coba bayangin kalau semua password di Symphony Plain Text.
Kalau misalnya...
Si company-nya.
Si pembuat website-nya.
Kena hat.
Semua kan.
Habis semua data-data pribadi.
Udah ada email.
Udah ada password.
Plain Text pula.
Terus ada nama ibu kandung.
Aduh, selesai.
Udah tahun.
Penjelasannya itu tuh.
Developers usually run a function to...
Convert this password into something...
That looks completely different.
Melalui suatu algoritma...
Matematis.
Biasanya menggunakan BigCrip.
Atau apa kalau ini?
Crip.
Crip tool. Masing-masing platform...
Ada punya ya?
Kasa algoritma itu ada banyak.
Ada MDX, NG5,
SHA,
SHA1, SHA2.
Terus...
Ya.
Md5 sudah obsolete.
Md5 jangan.
Md5 jangan lagi.
Karena...
Lebih gampang collision ya.
Kalau Md5.
PBK...
DF2T.
Ini kepanjangnya apa ini?
Ada password based...
Scroll aja ke bawah ada penjelasannya.
Password based key derivation function 2.
Oh, versi 2 ya.
National Institute of Standard and Technology.
Nah detailnya bisa di...
Itu tuh link.
Password storage cheat sheet.
BigCrip, kalau nggak salah ada BigCrip 2.
BigCrip 2?
Ya, kalau nggak salah ya.
Kalau nggak salah. Mungkin saya salah.
Nah, pertanyaan bagus nih.
Dari Reza Irfan Widjaya 23.
Kalau satu arah, cara verify passwordnya gimana?
Ayo, ada yang bisa dijelaskan?
Yang ini?
Ya itu di artikelnya juga ada sih.
Ada ya.
Ya kan password hashingnya kan sama ya.
Apa namanya?
Kalkulasinya sama.
Pas user mau masuk lagi, udah ngetik lagi.
Itu, apa?
Disamain aja, hash passwordnya disamain.
Nah.
Kalau sama, ya besok kalau user ngetik lagi...
Pasti hasilnya tetap sama.
Jadi yang dibandingin adalah hash-nya, bukan passwordnya.
Hash-nya, bukan password ininya.
Jadi setiap ada user login,
passwordnya diambil,
terus di BigCrip juga, dicek.
BigCripnya sama nggak sama yang ada di database?
Kalau sama, berarti secara
otomatis ininya sama.
Nah, karena nggak bisa dibalikin,
kalau pun si hash passwordnya
bobol, kan yang
dapat, yang bisa mengakses
hash passwordnya nggak bisa
kebalikin ke password aslinya, kan?
Karena cuma satu arah.
That's the point, satu arah.
Kenapa satu arah?
Ya, betul.
Jadi bukan value-nya, tapi hasil
acaknya yang...
Sebenarnya nggak acak sih.
Karena kalau acak pasti bisa beda, kan?
Jadi pokoknya apa yang
dia entry disini, kalau sama, dia hasilnya juga.
Jadi itu semua kayak fungsi matematis aja.
Fungsi matematika, betul.
Asal jangan passwordnya
sebelum kita simpan atau sebelum kita hash,
ditambahin
time-stamp.
[tertawa]
Time-stamp buat apa?
Ya, biar...
Biar nggak ada yang bisa login lagi.
Biar nggak ada yang bisa login lagi.
[tertawa]
[tertawa]
Selalu ini ya,
terus tombol "forget password"
diimplementasi.
Jadi gimana mau masuk?
[tertawa]
Iya, ngomongin sama password kan
ribet ya. Apalagi semakin kesini
kan "wah, harus secure" segala macem.
Tapi kan akhir-akhir ini banyak yang
pakai cara
passwordless, kan? Jadi nggak pakai password.
Masukin email, terus di email-nya itu
dikasih
beberapa
angka OTP.
Terus abis itu kita bisa
klik atau bisa masukin
OTP-nya, kan? Jadi
tanpa perlu password.
OTP juga password, one-time password.
Iya, cuma kan kita nggak perlu menghapus.
Cuma bukan
bebannya bukan di user dan
bukan kita pembuat aplikasi
untuk nge-store
si hash password di database itu
ya. Maksudnya.
Magicling, magicling, benar-benar.
Yang pakai ini sekarang si Slack.
Slack itu pakai magicling kalau
login. Oh, pakai magicling.
Banyak yang pakai
ada kelemahan-nya juga
kalau magicling. Kalau
si email-nya si
yang bersangkutan itu ke
hijack, ya bisa
login. Oh iya, benar-benar.
Iya, itu plus-minus sih.
Oh iya, benar juga ya. Email-nya
jadi semakin krusial ya.
Tapi kan
forget password juga kayak gitu, kan?
SMS juga bisa ke hijack loh.
Kalau si
memang kita
orang yang punya high value
ya, dan benar-benar jadi target,
dan benar-benar ingin ada yang benar
jahilin, ya
ada aja untuk nge-hijack
SMS.
Itu bisa.
Satu hit OTP bayar berapa?
Oh, jaman dulu. Email kan?
Enggak, kalau OTP
SMS harus.
Oh, SMS bayar lah.
Kalau SMS ya.
Kalau email
praktikally gratis nggak sih?
Hampir gratis lah ya, nggak gratis.
Tapi nggak mahal kan?
SMTP server kan?
Bayar kan?
Ya, semahal
SMS ya mungkin.
Ya.
Nggak, istilahnya
affordable lah ya, kalau email ya.
Affordable ya.
Wah, by the way tadi salting belum dibahas.
Bawahnya di artikel itu
masih ada tambahannya bawah.
Oke, tadi hashing, dibawahnya
ada salt.
Mana ini ya?
Itu mengantisipasi user yang
passwordnya sama
kebetulan.
Luar juga itu sana efek.
Kalau salting itu
bedanya apa? Bedanya
adalah, ini contohnya
Michael & Bob.
Use passwordnya sama.
Oh, passwordnya sama ini.
Michael sama Bob ini ada hubungan apa mereka, passwordnya sama?
Kebetulan aja ternyata bisa.
Ya.
Di Zafami tadi ada 3 orang pakai.
Iya.
Ajaib juga tuh.
Oke.
Mereka pakai hashing.
Kalau pakai has
sama, hasilnya akan sama.
Hasilnya akan sama.
Yang kayak tadi ya kita ambil. Karena tadi fungsi
matematis kan.
Kalau passwordnya si Michael
ditambahkan garam,
garamnya itu adalah
UX2ZE.
Kalau si Bob, garamnya
adalah 0...
Asil akhirnya
adalah,
oh, dikasih garam
dulu baru di has ya.
Berbeda.
Gantung algoritma kita, mau kita tambahin
garamnya dimana.
Makanya
saya bilang, ini maksud saya tadi,
jangan sampai garam yang kita tambahin itu adalah
time frame, time stamp, sorry.
Time stamp.
Gak bakal bisa matching lagi.
Iya.
Itu maksud saya, kalau saltnya itu kita pakai
time stamp jadi susah.
Oke, jadi ada yang
digaramin dulu,
ini garamnya belakangan ya, saltnya.
Jadi biasanya disimpan
di database, saltnya
kita hashing.
Saltnya kita hashing.
Eh, salah. Salt nggak bisa di hashing.
Saltnya bisa di...
Saltnya itu bisa kita random
tapi bisa kita pakai 2-way encryption.
Bisa dibalikin.
Dan yang
di passwordnya adalah hasil
salt dengan has.
Ada juga teknik
seperti itu. Cuman jadi berat.
Jadi banyak komputasi, ya.
Berapa round expectation buat salt?
Maksudnya apa nih?
Bisa berapa kali di...
Bisa berkali-kali.
Bisa berapa kali digaramin.
Ada, kalau...
coba ya, pakai php
function itu bisa kok.
Nah, itu sudo code-nya
itu tuh penjelasannya.
Di screen, scroll ke atas.
Check if
provided username can be found in database.
If yes, get the salt that
is stored along with username.
Jadi salt ini disimpan di database.
Database user.
Iya.
Row ya, per user ya.
Scroll ke atas, scroll ke atas sedikit.
Ada penjelasannya di atas. Nah, as you can see
blah, blah, blah.
It's important to note that each user's
password should have its own
unique salt. Kayaknya satu... apa?
Saltnya itu unique
in relation to
apa?
Each user.
In fact, the salt
that has in the username
usually stored together.
Berarti saltnya ini
degenerate secara otomatis
oleh sistem.
Pada saat kita mau register.
Ya, waktu usernya
register.
Dan disimpan di database.
Bisa simpan ya.
Nah, ini adalah
flow-nya ya.
Jadi, detect dulu username-nya ada
di database atau enggak. Kalau ada, berarti
ambil... ambil garamnya.
Ya, kemudian
masukkan garam ke dalam password.
Dan kemudian
di hash.
Gira cik.
Tuh, ada yang
ada yang ini nih, ada yang
nggak fokus sama keyboardnya
Ivan. Keyboard baru, keyboard baru.
Hah? Apa tuh? Oh, baru.
Suaranya enak.
Empuk ya. Empuk.
Toki. Toki.
Keyboard mekanik.
Keyboard mekaniknya.
Best practice, don't use the username
as the salt.
Don't use timestamp juga
tadi kata Ivan.
Timestamp juga jangan ya.
Gunakan
pseudo-random number
generator to generate salt.
Setiap password
harus punya salt yang
unique.
Ini gimana cara...
cara...
Ya, pakai krip aja.
Pake krip aja ya.
Pake library ya.
Apapun misalnya kalau saya
bilang tadi, coba misalnya
timestamp tetapi di
sha, sha, di sha 2
misalnya kan jadi random tuh.
Dan setiap user jadi random.
Harus diambil berapa gitu ya.
Iya, terus diambil 6 karakter awal atau
10 karakter terakhir, terserahlah.
Yang penting kan kita sudah berusaha
membuat itu serandom mungkin.
Serandom mungkin ya.
Nggak diambil dari
username, nggak diambil dari
username.
Terakhirnya iklan si artikel itu.
Paling bawah.
Seperti biasa.
Keyboard-nya Nupai.
Nupai.
Nupai.
Episod kali ini dipersembahkan
oleh keyboard
Nupai.
Terlalu-lalu di-sponsorin.
Malah Ivan yang ngayar.
Nupai.
Ambasador.
Nupai.
Dari sisi back-end berarti
Laravel sudah ada kan ya?
Kalau dari PHP sih.
Sudah ada library-nya sendiri
kalau dari PHP.
NoJS juga ada ya.
NoJS. Yang dari
NextJS itu apa sih?
Itu kan bisa dipakai
umum juga, NextJS.
Yang dari Versal, sorry.
Yang dari Versal.
AuthJS ya.
Namanya ya.
Yang tadinya dari NextJS.
Terus abis itu dia bikin, ya
AuthJS ya betul. AuthJS.
Tadinya kan dia khusus spesifik
untuk NextJS.
Terus abis itu di generalisasi.
Dibikin untuk umum.
Oh beda sih kalau
apa? Maksudnya
kalau itu full-hosted
layanan ya kayaknya?
Free and open source.
Oh itu library.
Bisa express, bisa next, bisa
quick, bisa
spell, bisa yang lain-lain.
Remix.
Solid start.
Maksudnya itu
apa?
Kalau yang tadi yang di
Laravel, NoJS itu kan
bukan service untuk
kalau ini kan sudah account management ya.
Oh ini account management.
Semacam all out tapi lewat
kalau AuthJS ini, semacam all out
tapi lewat dia. Maksudnya kriptonya.
Kalau yang tadi
kan yang di framework itu yang
lower level kan. Maksudnya kita yang
umum sendiri. Laravel
kayaknya udah high level kayak gini
kan? Kalau Laravel.
Enggak kayaknya.
Kecuali. Enggak.
Cuma Laravel itu kan banyak library
tambahannya. Banyak ecosystem.
Jadi kayak Laravel Breeze.
Atau semacamnya namanya.
Enggak. Mungkin ada juga
yang...
Ada ya?
Karena kalau
si Laravel kan pakai PHP ya.
Di belakang-belakangnya itu
di belakangnya itu
pasti pakai
PHP pure functionnya itu
password hash, password verify,
kript.
Si PHP nya sendiri
sudah sediakan segitu banyak.
Ini sih
function,
pure functionnya dia.
Untuk
lucia out tuh
dari si Aris.
Lucia out ini apa?
Iya belum pernah.
High level nya untuk
ya tau sih, coba liat.
Ini kan
Laravel out ya, coba ya.
Jadi di Laravel nya sendiri
out nya tuh kayak
cuma dikasih kelas-kelas gitu.
Ya tetap kita yang handle, kita yang urus,
kita yang masukin database nya kita.
Cuma ada
yang namanya, Laravel kan
sistemnya luas ya. Ternyata dia punya
Laravel password sama
Laravel sanctum. Nah itu tuh.
Dia punya
service tambahan.
Iya. Apa?
Iya.
Iya.
Iya.
Kalau di
setelah
setelah
Iya.
Jadi
ada satu lagi kan
di atasnya yang harus kita implementasi.
Apa tuh? 2FA
Two Factor Authentication
Second Factor Authentication
atau Multi Factor Authentication.
Yang pakai
device ya?
Ya bisa OTP,
bisa device, bisa
kalau dari Android kan ada
Google Authenticator
Google Authenticator.
Jadi one time
key in gitu.
Kalau di token BCA
ada application 1, application 2
ingat gak jaman dulu
di token BCA
Nah itu teknologi sama tuh
sama OTP.
Tapi yang satu hardware, yang satu software ya.
Iya masih ada di saya nih.
Tapi udah gak pernah gue pake.
Masih punya tapi mati.
Gak bisa nyala tuh. OTP.
Iya OTP tuh.
Apply 1, apply 2, apply 3.
Yang apply 3 pake salt.
Jaman dulu tuh BCA udah pake gitu tuh.
Udah duluan ya.
Ya kalau banking kan
securitasnya di nomor 1 kan.
Two Factor Authentication
Jadi kalau sekarang kan login itu
kalau kita udah bikirin login
secara keseluruhannya. Pasok kan
sudah harus secure.
Terus kemudian unik.
Terus kemudian dikirimkan
harus secure juga sih.
Terus kita pake HTTPS.
Terus kemudian
passwordnya kita gak boleh
simpan plain text
dalam database. Kita harus
solve dan hash.
Terus kemudian di atas layarnya lagi
masih ada harus kayak pakai
2FA untuk menambah lebih
secure. Lalu
kita juga menyediakan namanya
ada SSO Single Sign On.
Seperti kita di Authentication Provider
pakai Github
atau Google
atau Windows.
Windows ada gak sih? Windows Halo.
Terus banyak-banyak.
Facebook login
segala macam.
Yang umum sih ya Facebook, Google.
Dan itu sebenarnya
sudah banyak label yang
umur. Jadi kita bisa tinggal pakai.
Nah, yang terakhir
itu adalah namanya Passkey.
Passkey.
Bagaimana perkembangannya.
Password menggunakan Authentication.
Nah, kita
sudah satu
saya ada presentasinya
karena sudah pernah sering bawa
berkuar-kuar soal Passkey.
Apakah Passkey bisa
memucahkan masalah password leak?
Ini overview aja.
Overview aja.
Apakah Passkey bisa memecahkan
masalah password leak?
Bisa ya? Bisa.
Tidak secara langsung.
Justru bisa banget
password leak untuk data.
Ya, karena dia
saya coba share screen aja.
Ini teaser dulu ya.
Passkey kayaknya episode
terpisah kayaknya ya. Loh.
Apa? Gimana?
Sebentar.
Screen saya yang kelihatan?
Iya.
Jadi
Passkey.
Kalau teknologinya mirip
dia pakai
Asymmetric Key.
Satu private key,
satu public key.
Jadi asymmetric cryptography gitu ya.
Sama seperti kita generate
key kita buat SSH. Ada private key,
ada public key.
Kalau misalnya kita mau
git lah, kalau kita mau pakai git,
mau sending data ke
GitHub, ya kan?
Kita kan petawanya diminta untuk generate
key-nya kita dulu kan.
Apa sih?
Lupa gue, Kas.
Untuk bikin key.
Ya itu private key, public key.
General key.
Lupa.
DSA, RSA, apa ya?
Keygen, keygen.
Keygen, keygen. Nah.
Eh, keygen. Bukan gak sih?
Basa sih.
Bukan SSH.
SSA.
SSH.
SSH loginnya.
Tapi untuk key...
Lupa kan.
Tapi itu ya yang terminal.
Ya yang terminal untuk generate key. Apa sih?
Keygen.
Keygen kan, bener kan?
Bener kan?
Iya bener. Keygen kok.
Lupa sih.
SSH keygen. Nah.
SSH keygen.
Iya. SSH keygen. Bener-bener.
Udah malam soalnya.
Sama nih. Jadi private key
dan public key.
Nah. Saat kita nge-generate
pakai
API namanya
WebAuthn. Kalau di web itu namanya
WebAuthn.
Kita bisa generate keynya itu
yang akan meng-invoke si
operating system
untuk nge-generate key ini.
Yang dikirimkan ke server
hanya public key.
Yang disimpan
di lokal, di operating system
private keynya saja.
Sehingga
tadi menjawab pertanyaan apakah
mencegah password leak? Yes.
Karena kalau yang bocor adalah public key
sudah.
Ambil aja public keynya.
Kalau kamu simpan public key
saya di server kamu untuk saya bisa login
ke server kamu, ya makasih.
Saya bisa buka pintunya sana.
Jadi sebenarnya
kalau public key yang bocor ya udah. Nggak masalah.
Nggak ada apa-apa.
Lalu kemudian
untuk bisa
kita
proses loginnya
itu yang dikirimkan
hanya signaturnya saja.
Jadi nanti dari si server
memberikan
kita ke
kayak sebuah
random number
yang akan
dibuat
ke
random number dari server
kirimkan ke operating system
atau web
via web, nanti akan
menghasilkan sebuah signature.
Nah signature-nya ini hanya bisa
divalidate pakai public key
yang
pernah digenerate oleh si private key.
Nggak bisa lagi. Tapi berarti public key
sama private key itu lah dia kayak
itunya ya?
Ada koneksinya lah, ada fungsinya.
Bisa dibalikkan. Hasil hasingnya,
hasil algoritma untuk
waktu nge-generate-nya itu ya
mereka punya
sebuah pahaman.
Kayak there's a way untuk menghubungkan private key ke
public key yang digenerate dari situ.
Nggak koneksi sebenarnya. Jadi hasil validation-nya
bisa
match dengan algoritma yang dipakai.
Karena algoritma ini sama nanti.
Untuk menggenerate signature
pakai private key,
signature diverify pakai
public key.
Begitulah
prosesnya untuk
pas key.
Kita butuh satu episode
sendiri untuk bahas
ini.
Demo-nya kira-kira
seperti ini.
Stop screen
dulu.
Terus kemudian
share yang
satu lagi.
Jadi saya
nggak bisa
ini harus entire screen
karena ada pop-up.
Harus
share entire screen dulu.
Udah
bikin
plug-innya ya.
Punya plug-in WordPress-nya ya.
Ini tadi
yang saya bilang, Mas Riza,
kalau paso ternyata kelihatan
di DevTool. Saya salah.
Iya,
cuma nggak kelihatan di UI aja.
Webplugin.
Password.
Password.
Passkey.
Jadi kalau di WordPress
sudah ada plug-innya.
Register new passkey.
Pakai yang
yang punya si
browser aja.
Oke.
Generated.
Lalu
kalau misalnya saya mau login.
Login passkey.
Continue.
Ketik-ketik lagi.
Jangan usah ketik lagi.
Yay.
Apa soundboard dong?
Soundboard putri tangan.
Pertemuan-pertemuan
berikutnya.
Tidak kedengeran.
Oh, sorry. Saya ke-mute tadi.
Dah.
Oke.
Oke. Cukup.
Kayaknya untuk malam ini.
Apakah perlu kita bahas topik buat
minggu depan?
Beli topik ya.
Pilih topik.
Sebentar.
Share screen dulu.
Ada yang suka tarik buat bahas
passkey?
Tertarik dong.
Pasky kita langsung masukin.
Pasky.
WebAuthn dan Pasky.
Liputnya tepatnya itu sih.
Jadi kita bahas kulik WebAuthn-nya.
Pakai H nggak?
Iya.
Gini?
Plus Pasky.
G-R-C.
G-R-C apa sih?
G-R-C apaan?
Itu
G-R-C.
Bukan itu. G-R-PC.
Maksudnya.
G-R-PC.
G-R-C apaan? G-R-C.
Sorry. Ini kayaknya salah ini ya?
Oh, harus ada
body-nya.
Nah.
Oh, governor risk and
compliance.
Silahkan, teman-teman.
Kalau ada yang mau
ikutan diskusi atau mau
sumbang ide
atau mau, apa namanya?
Ada yang mau
voting-voting.
Nah, buat minggu depan, kira-kira kita
mau bahas apa?
Di sini ada database,
dokumentasi, jajar petor.
Web Security kan udah ya?
Web Security udah, tapi kan baru basic kan.
Masih ada part ke berikutnya.
Kita udah bahas, sebenernya,
today kan basic web security juga
soal password.
Kita belum bahas scale.
Developer well-being.
Itu bagus tuh.
Ya, dibuat aja dulu thread-nya.
Besok-besok bisa default.
Ya, kita buatin deh.
Kita buatin. Ini ya.
Developer finance.
Get started ideas.
Developer life management.
Gak.
Well-being. Apa namanya istilahnya?
Work and life balance.
Work-life balance ya.
Life.
Bisa juga work hard, play hard.
Ya, work-life balance, kesehatan.
Tulis dong saran dari 333.
Oh iya bener.
Saran dari
tiganya tiga kali.
Saran dari
3 x 3.
Eh, 3.
3.
Okay.
Eh, JSP sih.
Governance, risk and compliance.
Itu gimana?
Itu bahasan tang apa ya?
Tulis aja dulu.
Kayak GDPR gitu gak sih?
Ya, nanti dibahas di diskusinya aja.
Ya, silahkan
yang mau apa namanya?
Dibantu ini.
Seeding dulu. Seeding.
Seeding.
Kalau ada sal, ada seeding juga kan.
Di mana?
Di seeding dulu, di seeding.
Seeding itu maksudnya
Seed itu maksudnya
dasar awalnya
dulu apa.
Yang bisa kita kembangkan dari situ.
Kita bantu tulis.
Temen-temen bisa ngelengkapin
kayak Mas Irfan yang bikin nih.
Tuh, lengkap.
Enak kan? Bisa dielaborasi
lebih lanjut gitu. Ide-ide
yang di sini. Terus kalau misalkan
ide-ide nya udah ada ya tinggal
voting aja.
Jadi kita bisa milihnya lebih gampang.
Protokol transfer data.
Sudah ya?
Udah ya? Ini udah ya? Kita close.
Ya, close aja.
Bantu vote dong, bantu vote.
Bantu vote.
Kira-kira apa?
Ini ada growing algorithm.
Belum baca kita.
Hah, oh ya?
Belum baca.
Cuma belum selesai.
Ya, jadi
buat minggu depan kira-kira kita mau
bahas apa nih?
Paski database scaling
database scaling yang
ngerti siapa nih?
Nggak ngerti.
Database scaling.
Tauannya cuma bikin
database nya banyak.
RDS, bikin RDS.
Vertical scaling.
Design pattern.
Design pattern kita udah pernah belum ya?
Belum kayaknya ya.
Belum. Belum ya design pattern ya?
Design pattern.
Dokumentasi.
Dokumentasi menarik deh.
Bikin, maksudnya web
web untuk dokumentasi kan?
Dokusaurus. Iya, dokusaurus.
Iya, dokusaurus. Terus apa tuh? Starlight.
Bukannya pernah ya?
Yang itu.
Atau tentang gimana kita nggak dokumentasi?
Oh.
Oh, berarti itu bisa diberi dua tuh.
Bisa juga, bisa juga.
Bisa.
Ya, bisa sih kalau mau.
Oke. Apa kita perlu?
Satu tentang bikin web
website dokumentasi.
Yang satu lagi ya tentang
pendokumentasikan.
Tentang dokumentasinya itu sendiri ya.
Kan, bisa, apa?
Belum tentu kita selalu bikin library
atau framework kan. Bisa juga
ya, apa? Buat web app
atau website. Itu kita
nyatur itu. Ngedokumentasikan
gimana, apakah dengan JSdoc
doang misalnya.
Oke. Jadi, buat minggu depan
kira-kira apa nih?
Bahas tentang
apa itu dokumentasi? Atau tipe-tipe
dokumentasi yang tadi? Cara mendokumentasikan
project atau
kode kita?
Apa ya?
Dokumentasi. Atau
ya itu tadi, itu dulu
framework buat bikin docs.
Oke.
Framework
untuk
membuat dokumentasi
docs.
Terus yang kedua?
Buat yang kedua apa?
Design pattern ya?
Ya.
Yang ketiga
paski aja.
Yang ketiga paski.
Oke. Silakan
dalam lima menit, teman-teman
voting di YouTube.
Nah, ini
pernyataan yang
menariknya.
Kuliah master di IT part
belajarnya di sini lebih nyampun.
Terima kasih lho.
Terima kasih lho. Ini pujian lho buat kita lho.
Dosennya
taunya nonton besok pagi.
Apa kamu bilang?
Kuliah master.
Cuma kalau master mungkin level
abstraksinya lain kali ya?
Ya, udah ini.
Semacamnya.
Udah high level.
Kita kan
jatuhnya low level ya.
Kita praktikal.
Kita yang
kita praktisi.
Tapi kalau master itu kan
ya mungkin lebih teoritis
kali ya?
Yes.
Tentang sistem IT yang
lebih kuat.
Ya, manajemennya,
terus yang tadi apa, governance
dan lain-lain kayaknya lebih bahas disana.
Oke.
Baru tiga orang yang
vote. Ayo satu menit lagi
ditunggu. Tiga orang votnya
lain-lain semua pusing. Kalo tiga orang
vot satu yang sama
mah, gak apa-apa.
Design pattern.
Tiga orang.
Tiga orang.
Ayo, ayo.
Sebelum jam setengah
sebelas kita harus sudahan.
Wah, bener nih.
Lima vote.
Lain semua, gak mungkin.
Satu menit lagi, satu menit lagi.
Enak nih ngeliatin live vote ya.
Cuman gak kelihatan di sini ya.
Kayak pemilu dong.
Quick count.
Quick count.
Lima. Dua.
Tiga. Eh, belum ya?
Udah. Dua.
Satu. Iya, pemenangnya
adalah design pattern.
Hooray.
Minggu depan kita akan bahas tentang design pattern.
Wah, terus gak ada yang bisa design pattern.
Gak ada yang bisa.
Terima kasih.
Design pattern.
Sudah pernah belajar
sebuah lagi nih buku-buku
Sambil belajar, cari ini ya.
Ya, gitulah.
Terima kasih ya PRnya, teman-teman.
Kan ini cuma design pattern.
Gak ada
komputer programming
blablabla design pattern.
Nanti gue bakal bahasnya javascript design pattern.
Iya dong.
Apa, web app design pattern?
Kan design pattern juga.
Iya, design patternnya banyak kan?
Di sini dibahas gak?
Design pattern apa? Gak ada kayaknya.
Lakan gak ada ketentuannya kan?
Makanya bikin spesifikasi
kalau gak spesifikasi. Ini aja detail nih.
Oh, ada? Oh, ada.
Apakah dari base project yang mau
dibangun?
Atau design...
Misalnya pertimbangan mau bikin system
payment gateway. Apakah cocok
kalau kita pakai design pattern berbasis
service. Kebanyakan
tech company besar itu pakai design
pattern seperti apa?
Tips junior programmer yang mau
memahami design pattern
seperti apa di luar komunitas
oh, komunikasi ke senior
dan baca dokumentasi projectnya.
Oke, oke, oke.
Tuh, bahas design pattern bisa buat episode-episode
memang.
Cuma ngerti MVC.
Sama yang patterns.devnya
Adi Osmani.
Itu udah kita bahas kan?
Itu udah kita bahas. Oh, enggak kan?
Kan belum in detail.
Nah, cuma kalau itu sih
front-end sama
ya, gak semua UI ya.
JavaScript atau front-end banget sih.
Cuma ngertinya.
Kita mulai dari pertanyaan ini aja
kayaknya lumayan starting pointnya.
Biar bahas bisa
sama ya, baca-baca dulu aja.
Ini sih patterns.dev ini
fallback-nya aja kalau udah bingung.
Yes.
Siap, siap, siap.
Baiklah, teman-teman.
Untuk malam ini kita...
Sudah mulai mikir cari buku apa yang harus gue baca
2 hari ini.
Bukannya kita ngobrolin web ini harusnya
low effort ya?
Low effort.
Tadi kita yang milih
design pattern juga sih.
Terima kasih.
Terima kasih.
Belajar bareng lah.
Tenang, tenang, tenang.
Yes.
Oke, untuk malam ini sekian dulu.
Terima kasih banyak buat semuanya yang sudah hadir
dan meramaikan. Kita ketemu lagi
minggu depan di jam 9 malam
WIB ya.
Sampai jumpa.
Selamat malam, selamat istirahat.
Bye-bye.
[Sampai jumpa di video selanjutnya]
Deskripsi asli dari YouTube
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. Topik, tautan dan pertanyaan menarik bisa dilayangkan ke https://ksana.in/ngobrolinweb Kunjungi https://ngobrol.in untuk catatan, tautan dan informasi topik lainnya.
Episode Terkait
9 Agu 2023
Ngobrolin URL
Episode ini bagian dari niat baru mereka: menyelipkan topik yang benar-benar mendasar setidaknya sebulan sekali, alih-al...
26 Sep 2023
Ngobrolin Package Manager
Berangkat dari keheranan sehari-hari — memasang satu paket lewat npm install tapi folder node_modules langsung membengka...
11 Agu 2026
Local Development Server
Episode ini membahas local development server, dari XAMPP yang legendaris sampai pendekatan modern berbasis kontainer. P...
Suka episode ini?
Episode baru setiap Selasa malam. Dengarkan lewat YouTube, Spotify, atau feed podcast favoritmu.
Memuat komentar dari GitHub Discussions...
Jika komentar tidak muncul karena ekstensi privasi / adblocker, kamu bisa berdiskusi langsung di GitHub Discussions .