Jangan Sembarangan Mengutak-atik Teknologi Paste
(github.com/aaronraimist)- DontFuckWithPaste adalah ekstensi Google Chrome yang menghapus perilaku aplikasi web yang memblokir salin dan tempel pada kolom input
- Proyek ini menilai bahwa memaksa pengguna mengetik langsung nilai seperti alamat email atau nilai dari alat seperti 1Password justru meningkatkan kemungkinan salah input
- Pengguna dapat menekan ikon ekstensi untuk menambahkan situs ke daftar hitam, lalu mengubah pola yang dibuat otomatis bila perlu dan menyimpannya
- Saat ekstensi aktif pada tab saat ini, ikonnya akan berubah menjadi biru sehingga status aktif/nonaktif per tab dapat diketahui
- Version 2 menggunakan izin
tabsagar ekstensi hanya berjalan pada situs yang bermasalah, dan penjelasan izin dari Chrome bisa terlihat lebih luas dan menakutkan daripada perilaku sebenarnya
Ekstensi Chrome yang menghapus pemblokiran salin-tempel
- DontFuckWithPaste adalah ekstensi Google Chrome yang menghapus perilaku aplikasi web yang memblokir salin dan tempel pengguna
- Tanggung jawab jika alamat email ditempel dengan salah ada pada pengguna, dan menyalin lalu menempel nilai dari alat seperti 1Password bisa menimbulkan lebih sedikit kesalahan dibanding mengetik semua karakter secara manual
- Tujuan ekstensi ini adalah secara sederhana menghapus pembatasan pada situs web yang memblokir event salin-tempel
Cara penggunaan
- Cara termudah untuk menambahkan situs ke daftar hitam adalah dengan mengeklik ikon ekstensi
- Setelah itu, ubah pola yang dibuat otomatis bila perlu lalu tekan
"Save" - Setelah disimpan, jika ikon ekstensi tampil biru, berarti ekstensi sedang aktif pada tab saat ini
Perubahan dan izin di Version 2
- Version 2 adalah pembaruan utama ekstensi ini, dan membuatnya lebih mudah agar ekstensi hanya berjalan pada situs yang salah menangani event salin-tempel
- Versi ini juga memberikan visibilitas untuk melihat apakah ekstensi aktif atau nonaktif pada tiap tab
- Izin
tabsdiperlukan untuk mengetahui kapan tab aktif berubah- Chrome menjelaskan izin ini sebagai
"can read and change all your data on websites you visit" - README menyatakan bahwa deskripsi ini terlihat menakutkan, tetapi ekstensi ini sebenarnya tidak bekerja seperti itu
- Chrome menjelaskan izin ini sebagai
- Karena ini proyek open source, pengguna dapat membaca kodenya dan memeriksa bagaimana ekstensi bekerja serta apa saja yang tidak dilakukannya terhadap data pengguna
- Informasi tambahan tentang upgrade Version 2 dapat dilihat di wiki page
1 komentar
Komentar Hacker News
Jika input pengguna diblokir, justru keamanan aplikasi bisa memburuk. Jika kata sandi tidak bisa disalin, pengguna yang awalnya memakai kata sandi yang baik pun bisa beralih ke kata sandi yang kurang kompleks karena repot harus mengetik manual
Jika Anda memaksa input yang kompleks tetapi tidak membiarkan pengguna menempel nilai yang sudah mereka hasilkan dengan benar, pengalaman pengguna juga jadi rusak
Sistem yang mewajibkan karakter tertentu juga bermasalah. Dibanding aturan seperti “harus mengandung huruf besar, angka, dan karakter khusus”, saya lebih memilih menghasilkan kata sandi yang lebih panjang meskipun hanya memakai karakter biasa. Sesekali saat harus diketik langsung, itu lebih mudah
Yang lebih buruk adalah ketika jenis karakter khusus yang diizinkan juga dibatasi. Kata sandi yang sudah dibuat jadi harus diedit lagi hanya untuk menghapus karakter tertentu
Rasanya bukan hal yang terlalu sulit untuk sekadar menampilkan kekuatan kata sandi dan memberi panduan seperti “gunakan lebih banyak karakter, misalnya Anda bisa memakai empat kata”
Pengguna kemungkinan besar tidak cukup sering memakai aturan khusus antarmuka itu untuk mengingatnya, dan pada akhirnya akan mencoba menyalin dari clipboard terlebih dahulu
Saya pada umumnya setuju bahwa pengguna harus dibiarkan memakai fungsi yang sudah mereka kenal, tetapi jika mereka terbiasa menyalin-tempel kredensial, mereka jadi lebih rentan terhadap phishing
Alat pengelola kata sandi bawaan Firefox dan Chrome tidak akan keliru memasukkan kredensial ke situs tiruan yang mirip, tetapi pengguna sangat mungkin melakukannya
Masalahnya adalah tidak ada model izin alternatif untuk melakukan ini. Saya sudah mencoba beberapa ekstensi, dan sering kali mereka tidak bisa berbuat apa-apa tanpa akses baca/tulis penuh ke semua halaman
Misalnya ada ekstensi untuk memutar gambar lewat klik kanan sebesar -90/+90/180 derajat. Yang saya butuhkan hanya browser memberi tahu saat ada tag gambar, tetapi tidak ada opsi seperti itu
Pada akhirnya, pilihannya adalah menanamkan daftar izin per halaman di dalam kode, membiarkan pengguna membuat daftar izin per halaman, atau meminta izin baca/tulis penuh ke semua halaman web yang dikunjungi pengguna
Penulisnya sudah menjelaskan izin yang dibutuhkan dan alasannya setransparan mungkin, dan alasan itu juga muncul karena faktor di luar kendali penulis, jadi reaksi seperti ini terasa terlalu sinis
Secara teknis memang benar. Nanti bisa saja dipakai untuk melakukan apa pun
Tetap saja, sikap seperti ini lebih layak diapresiasi daripada dikritik
Saya tidak tahu kenapa postingan asli menautkan fork alih-alih versi asli. Versi aslinya punya versi bookmarklet yang bisa dipakai sebagai alternatif
https://github.com/jswanner/DontF-WithPaste?tab=readme-ov-fi...
Anda bisa menghindari masalah itu dengan mengunduh source ekstensi lalu memakai “Load unpacked extension” di mode pengembang ekstensi Chrome. Dengan begitu Anda bisa yakin ekstensi tersebut tidak berubah diam-diam
Meski begitu, saya tidak memberi izin semua situs untuk ekstensi ini, hanya menyalakannya per situs
Karena itu saya memakai manajer paket sistem untuk instalasi dan pembaruan ekstensi browser
Jika repositori paket tidak punya ekstensi browser yang saya butuhkan, saya akan berkontribusi membuat paketnya sendiri, lalu menanggung tanggung jawab verifikasi dan pemeliharaan berkelanjutan
Untuk mengakali masalah ini, biasanya di Mac saya drag and drop teks yang ditempel ke tempat seperti kolom URL
Tetapi memblokir tempel atas nama keamanan adalah tindakan bodoh yang hampir selalu masuk daftar teratas, tepat di depan batas waktu yang terlalu singkat di mana pun
Andai saya bisa bertemu langsung dengan orang-orang yang membuat keputusan seperti ini
Saya pernah dipaksa menerapkan logout otomatis 30 menit di situs web yang rasanya sulit dianggap menyimpan data sensitif. Alasannya, perusahaan pengujian penetrasi pihak ketiga menandai tidak adanya batas waktu singkat sebagai masalah
Untuk bisa menunjukkan hasil uji penetrasi yang lolos kepada pelanggan, kami terpaksa mengikuti semua temuan itu. Semua orang tahu ini tuntutan yang konyol, tetapi manajemen tidak memberi pilihan selain mengimplementasikannya
Ini alur konyol yang baru-baru ini saya alami di login.gov. Pengelola kata sandi saya punya login tersimpan, dan meskipun saya tidak ingat, itu tetap berfungsi. Setelah itu situs meminta kode aplikasi autentikator, tetapi aplikasi autentikator saya tidak punya entri login.gov
Saya menekan tombol “login dengan cara lain”, tetapi cara lain itu ternyata tetap memakai aplikasi autentikator. Saat saya menekan “tidak bisa menerima kode?”, yang muncul adalah saya harus menghapus akun
Saat saya menekan hapus akun, sebuah email dikirim, dan email itu mengatakan saya harus menunggu 24 jam sampai menerima email penghapusan akun lainnya. Setelah 24 jam, saya menerima email yang memungkinkan saya menghapus akun tersebut
Saya tidak tahu apa yang ada di akun itu. Untuk keperluan login, tampaknya bisa cukup sensitif, tetapi kalau memang begitu sensitif dan penting, kenapa tindakan paling destruktif yaitu menghapus akun justru dimungkinkan? Kenapa penghapusan bisa dilakukan hanya lewat email, tetapi menerima kode autentikasi tidak bisa?
Bahkan MS Remote Desktop pun tidak mengizinkan tempel
Mereka kira pengelola kata sandi itu ada untuk apa?
Di Mac saya memakai Hammerspoon, dan mengatur shortcut Cmd+Shift+V agar alih-alih menempel, ia mengetik karakter yang sebenarnya. Ini selalu berhasil setiap kali ada yang melakukan hal seperti ini
hs.hotkey.bind({"cmd", "shift"}, "V", function() hs.eventtap.keyStrokes(hs.pasteboard.getContents()) end)Keyboard Maestro juga aplikasi yang sangat bagus untuk pekerjaan seperti ini, dan bahkan menambahkan jeda yang sesuai di antara penekanan tombol untuk mencegah perilaku aneh. Kira-kira sekitar 0,05 detik
Di Windows saya melakukan hal yang sama dengan AHK, dan juga memakai pintasan yang sama. Hanya saja saya menambahkan jeda kecil sekitar 10~50ms di antara setiap penekanan tombol. Kalau tidak, input kadang bisa rusak
Saya juga menambahkannya, tetapi setahu saya Cmd+Shift+V adalah “tempel tanpa format”, jadi saya memakai option alih-alih shift
-- https://news.ycombinator.com/item?id=39640745hs.hotkey.bind({"cmd", "alt"}, "V", function()hs.eventtap.keyStrokes(hs.pasteboard.getContents())end)Cara ini juga menyelesaikan intersepsi input yang berlebihan di Google Sheets
Seharusnya tidak perlu mempercayai add-on untuk hal seperti ini, dan mestinya bisa diatur di browser
Di Firefox,
dom.event.clipboardevents.enabledbisa ditoggleAkan bagus jika hanya event “paste” yang bisa dimatikan secara selektif. Tombol seperti “klik untuk menyalin nilai ini” sangat berguna di alat kerja, jadi sayang kalau setiap kali mematikan event clipboard demi menghindari situs jahat, fitur itu ikut tidak bisa dipakai
Menurut pengalaman saya, pengaturan ini merusak fungsi tempel di beberapa web app. Misalnya emulator terminal tertentu atau editor teks
Saat klik kanan, Anda juga bisa menahan Shift untuk memaksa menu terbuka
Dulu pengaturan ini merusak copy/paste di Google Docs. Sudah lama saya tidak mencobanya, jadi mungkin sekarang sudah diperbaiki
Saya juga benci situs yang memblokir paste, jadi ekstensi ini sangat disambut. Terutama di tempat seperti konfirmasi nomor rekening·nomor routing atau alamat email, dan ini juga merusak password manager. Menerapkan aturan kata sandi yang rumit dengan alasan mencegah kata sandi lemah lalu memblokir paste tentu sangat menjengkelkan
Tapi saya juga pernah langsung mengimplementasikan langkah keamanan seperti ini di web application. Saya menerima requirement lalu mengerjakannya, dan saya bertanya ke klien kenapa harus dilakukan padahal “semua orang” tahu hal seperti ini buruk untuk pengalaman pengguna dan bahkan sangat kontraproduktif bagi keamanan
Jawabannya adalah compliance. Karena mereka harus lolos audit keamanan dan membuktikan kepada pelanggan besar atau perusahaan asuransi bahwa mereka memiliki langkah keamanan standar industri
Sayangnya, bank tidak peduli pada 2% orang yang memakai password manager. Sisanya masih menghafal kata sandi, melupakannya, dan menjadikannya bahan lelucon seperti tahun 2003
Orang bilang “harus dilakukan karena compliance”, tapi benarkah begitu?
Saya belum pernah melihat requirement compliance yang tidak bisa dibantah secara masuk akal. Ini cuma hasil pertemuan antara konsultan compliance yang terlalu bersemangat dan tim yang tidak terlalu peduli pada pengguna. Orang-orang tidak benar-benar mempertanyakan apa pun
Audit PCI compliance kami menegur karena tidak menonaktifkan autocomplete pada field form login. Tidak sama persis dengan menonaktifkan paste, tapi arahnya ke sana
Secara pribadi, saya langsung menyerah pada situs yang membuat password manager (Bitwarden) tidak bisa dipakai
Jika cara mengakali pemblokiran paste jadi terlalu tersebar luas, situs-situs yang sama pada akhirnya akan mengimplementasikan keyboard virtual
Jika itu terlalu mudah bagi pengguna layar sentuh, mungkin berikutnya adalah mouse virtual untuk mengklik keyboard virtual. Mereka juga bisa mengacak akselerasi mouse untuk membedakan manusia dan komputer
Ini bookmarklet alternatif yang dulu pernah diposting di sini
[1]: https://bookmarkl.ink/ashtonmeuser/6e3869d8e468e016f22a4b4de...
Saat paste tidak bisa dilakukan, saya biasanya klik kanan → Inspect Element lalu menulis
$0.value="value from clipboard"di konsol. Ini bekerja hampir di mana sajaMengutak-atik paste mirip dengan mematikan autofill, dan standar HTML5 menjelaskan dengan cukup jelas kapan hal itu seharusnya dimatikan: “terutama untuk nilai sensitif (misalnya kode aktivasi senjata nuklir), atau nilai yang sama sekali tidak akan pernah digunakan ulang (misalnya kunci sekali pakai untuk login bank)”
Satu-satunya hal yang terpikir adalah malware yang mengubah nilai clipboard untuk menipu pengguna agar menempelkan nilai yang salah. Tapi kalau skenario itu dibuka, ada banyak sekali cara malware bisa mengacaukan field input manual juga
Intersepsi Ctrl-F juga setara menjengkelkannya
Ada banyak kasus di mana shortcut yang berarti satu hal di browser berarti hal yang sama sekali berbeda di aplikasi lain. Karena makin umum aplikasi seperti itu menjadi web app, benturan shortcut bisa terjadi
Ambil Google Docs sebagai contoh: saat menekan Ctrl-F di dokumen atau spreadsheet, apakah yang diinginkan pencarian browser, atau pencarian milik aplikasi itu sendiri? Sebagian besar pengguna menginginkan pencarian aplikasi. Saat membaca situs berita, kebanyakan orang akan mengharapkan pencarian browser
Artinya selalu ada pengecualian pada aturan yang kaku. Hanya saja, untuk masalah copy/paste seperti di tulisan asli, tidak ada pengecualian. Jangan memanipulasi clipboard saya demi omong kosong marketing·pelacakan
Ada juga kasus yang setengah sah untuk dibenarkan. Misalnya saat melihat database Notion, Ctrl-F standar hampir tidak berguna, dan pencarian dokumen harus mengambil hasil lewat API Notion, kadang juga harus mencari hasil yang terkait dengan item yang sedang ditampilkan di layar
Saya bilang “setengah” karena sebenarnya saya lebih suka itu dipetakan ke shortcut lain. Meski begitu, saya paham logika bahwa pengguna mungkin ingin melakukan remap
Pada akhirnya ini berasal dari keputusan awal untuk memilih cara pemrosesan dokumen seperti itu. Di batas antara aplikasi online dan webpage, ini menjadi perdebatan yang rumit
Baru-baru ini saya tahu bahwa jika setelah diintersep lalu menekan Ctrl-F sekali lagi, kotak pencarian browser akan muncul
Saya tidak ingat situs apa, tetapi ada tooltip di kotak pencarian yang diintersep yang memberi tahu fakta ini. Saya penasaran apakah ini juga berlaku di pencarian Redocly, mencobanya, dan ternyata berfungsi meski tanpa tooltip
Saya tidak yakin apakah ini bekerja secara umum, atau hanya fitur tak terdokumentasi dari antarmuka Redocly dan tidak akan berfungsi di tempat yang pengembangnya tidak memberi perhatian khusus
Lingkungannya Chrome + OSX atau Windows
Saya tidak paham kenapa browser mengizinkan situs web menimpa shortcut bawaannya sendiri. Rasanya justru perlu kode tambahan agar itu bisa bekerja dengan benar
Misalnya, Linear mencegat Cmd+F lalu memberi sesuatu yang payah alih-alih pencarian bawaan browser yang konsisten bekerja sama di mana pun. Ya, Linear yang itu, yang tampaknya yakin semua orang pasti menginginkan pengeditan Markdown WYSIWYG
Sulit dipercaya bahwa di tahun 2024 kita masih tidak bisa begitu saja grep dokumentasi
Apakah orang lain juga menyadari bahwa penulis postingan asli membagikan fork yang tidak punya peningkatan berarti dibanding repositori aslinya, tetapi mendapat 399 upvote?
Penulis repositori asli menolak PR dukungan Firefox, jadi pemilik fork itu membuat fork hanya untuk menambahkan 6 baris manifest
https://github.com/jswanner/DontF-WithPaste/pull/29
Namun saya akui perubahan
.gitignoreyang tidak terkait memang tidak ada alasan untuk masuk ke PR asliYang ini untuk Firefox, sedangkan yang lain untuk Chrome, jadi mungkin ini peningkatan yang cukup berarti
Sepertinya upvote itu didapat bukan karena “terima kasih untuk alat yang berguna”, melainkan lebih ke “ya, saya juga benci hal seperti itu”
Fork ini untuk dukungan Firefox, dan dari sudut pandang orang yang memang tidak memakai Chrome sejak awal, saya menganggapnya sebagai peningkatan yang berarti. Repositori aslinya mudah ditemukan, tetapi mencari fork tertentu di GitHub jauh lebih merepotkan
Kalau itu memang sebegitu menyebalkannya, lain kali saya simpan sendiri saja. Tidak ada alasan memberi tahu orang lain di HN tentang hal-hal yang mungkin menarik bagi mereka
Benar. File yang berubah dibanding repositori induk hanya 3, dan perubahannya cuma
.gitignoreserta URL yang diperbarui ke repositori fork