Lompat ke konten utama
EP 121

Ngobrolin Kata Sandi

Ringkasan Episode

Bantu Koreksi

Episode 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

Bagikan:

Suka episode ini?

Episode baru setiap Selasa malam. Dengarkan lewat YouTube, Spotify, atau feed podcast favoritmu.

Pilih Cara Langganan

Memuat komentar dari GitHub Discussions...

Jika komentar tidak muncul karena ekstensi privasi / adblocker, kamu bisa berdiskusi langsung di GitHub Discussions .