1 puan yazan GN⁺ 2024-03-09 | 1 yorum | WhatsApp'ta paylaş
  • DontFuckWithPaste, web uygulamalarının giriş alanlarında kopyalama ve yapıştırmayı engelleme davranışını kaldıran bir Google Chrome uzantısıdır
  • Proje, e-posta adresi veya 1Password gibi araçlardaki değerleri elle yazmaya zorlamanın aslında yanlış giriş olasılığını artırdığını düşünüyor
  • Kullanıcı, uzantı simgesine basarak siteyi kara listeye ekleyebilir; otomatik oluşturulan deseni gerekirse düzenleyip kaydedebilir
  • Uzantı geçerli sekmede etkinleştiğinde simge maviye döner; böylece sekme bazında etkin/devre dışı durumu görülebilir
  • Version 2, uzantının yalnızca sorunlu sitelerde çalışmasını sağlamak için tabs iznini kullanır; Chrome’un izin açıklaması gerçek davranıştan daha geniş ve ürkütücü görünebilir

Kopyalama-yapıştırma engelini kaldıran Chrome uzantısı

  • DontFuckWithPaste, web uygulamalarının kullanıcının kopyalama ve yapıştırmasını engelleme davranışını kaldıran bir Google Chrome uzantısıdır
  • Bir giriş alanına e-posta adresini yanlış yapıştırmanın sorumluluğu kullanıcıya aittir; 1Password gibi araçlardan değerleri kopyalayıp yapıştırmak, tüm karakterleri elle girmekten daha az hataya yol açabilir
  • Uzantının amacı, kopyalama-yapıştırma olaylarını engelleyen web sitelerindeki kısıtlamayı basitçe kaldırmaktır

Kullanım şekli

  • Bir siteyi kara listeye eklemenin en kolay yolu uzantı simgesine tıklamaktır
  • Ardından otomatik oluşturulan deseni gerekirse düzenleyip "Save" düğmesine basmak yeterlidir
  • Kaydettikten sonra uzantı simgesi mavi görünüyorsa, uzantı geçerli sekmede etkin durumdadır

Version 2’deki değişiklikler ve izinler

  • Version 2, uzantının büyük güncellemesidir; kopyalama-yapıştırma olaylarını hatalı ele alan sitelerde uzantının çalışmasını sağlamayı kolaylaştırır
  • Uzantının sekme bazında etkin mi devre dışı mı olduğunu kontrol edebilmek için görünürlük de sağlar
  • Etkin sekmenin ne zaman değiştiğini bilmek için tabs izni gerekir
    • Chrome bu izni "can read and change all your data on websites you visit" olarak açıklar
    • README, bu açıklamanın ürkütücü göründüğünü ancak uzantının gerçekte bu şekilde çalışmadığını belirtir
  • Açık kaynaklı bir proje olduğundan kullanıcılar kodu okuyup uzantının nasıl çalıştığını ve kullanıcı verileriyle ne yapmadığını doğrulayabilir
  • Version 2 yükseltmesiyle ilgili ek bilgiler wiki page sayfasında bulunabilir

1 yorum

 
GN⁺ 2024-03-09
Hacker News yorumları
  • Kullanıcı girişini engellemek, tam tersine uygulama güvenliğini kötüleştirir. Parola kopyalamak mümkün olmadığında, başlangıçta iyi parolalar kullanan kullanıcılar bile yazma zahmeti yüzünden daha az karmaşık parolalara geçer
    Karmaşık giriş zorunlu tutulup kullanıcının düzgünce oluşturduğu değeri yapıştırmasına izin verilmezse kullanıcı deneyimi de mahvolur

    • Belirli karakterleri mutlaka kullandıran sistemler de sorunlu. “Mutlaka büyük harf, rakam, özel karakter içermeli” gibi kurallar yerine, sıradan karakterlerden oluşsa bile daha uzun bir parola oluşturmayı tercih ederim. Çünkü ara sıra elle yazmak gerektiğinde daha kolay oluyor
      Daha da kötüsü, izin verilen özel karakter türlerini bile sınırlayan durumlar. Önceden oluşturulmuş paroladan belirli karakterleri silmek için tekrar düzenleme yapmak gerekiyor
      Bunun yerine parola gücünü gösterip “Daha fazla karakter kullanın; örneğin dört kelime kullanabilirsiniz” diye yönlendirmek bu kadar mı zor, diye düşünüyor insan

    • Kullanıcının o arayüzün özel kurallarını sık kullanmadığı için hatırlamama olasılığı yüksek; sonuçta önce panoya kopyalama yapmayı deneyecektir

    • Kullanıcıların alışık oldukları işlevleri kullanabilmesi gerektiğine genel olarak katılıyorum; ancak kimlik bilgilerini kopyalayıp yapıştırma alışkanlığı varsa phishing saldırılarına daha açık hale gelirler
      Firefox ve Chrome’un yerleşik parola yöneticileri, benzer görünümlü sitelere yanlışlıkla kimlik bilgileri girmez; ama kullanıcılar bunu gayet yapabilir

  • Mümkün olduğunca sorunsuz bir deneyim sunmak için uzantının etkin sekmenin ne zaman değiştiğini bilmesi gerekir. Bu olayı öğrenmek için tabs izni gerekir ve Chrome bunu “ziyaret ettiğiniz web sitelerindeki tüm verileri okuyabilir ve değiştirebilir” diye açıklar. Bu açıklama çok korkutucu, ama bu uzantının gerçekte yaptığı şey kesinlikle bu değil. Açık kaynaklı bir proje olduğu için dilediğiniz zaman tüm kodu okuyup bu uzantının nasıl çalıştığını ve kullanıcı verileriyle neleri yapmadığını görebilirsiniz
    Sorun şu ki, kodu okumuş olsanız ya da birinin okuduğuna inansanız bile, gelecekteki güncellemelerde bunun böyle kalacağının garantisi yok. Yazarın vicdanı zamanla zayıflayabilir ya da uzantıyı satabilir
    Chrome uzantıları bildiğim kadarıyla otomatik güncelleniyor; öyle olmasa bile bu uzantı, güncellemelerin güvenli varsayılmaması gerektiğini hatırlatmalı

    • Sorun, bunu yapacak alternatif bir izin modeli olmaması. Birkaç uzantı denedim; çoğu zaman tüm sayfalara tam okuma/yazma erişimi olmadan hiçbir şey yapılamıyor
      Örneğin bir görsele sağ tıklayıp -90/+90/180 derece döndüren bir uzantı var. İstediğim tek şey, tarayıcının bir image etiketi olduğunda bunu bildirmesi; ama böyle bir seçenek yok
      Sonunda ya koda sayfa bazlı bir izin listesi gömmek, ya kullanıcıdan her sayfa için izin listesi oluşturmasını istemek ya da kullanıcının ziyaret ettiği tüm web sayfaları için tam okuma/yazma izni talep etmek gerekiyor

    • Yazar, gereken izinleri ve nedenlerini elinden geldiğince şeffaf biçimde açıklıyor; bu gerekçeler de yazarın kontrol edemediği etkenlerden kaynaklanıyor. Buna karşı tepki fazla alaycı görünüyor
      Teknik olarak doğru. Sonradan her şeyi yapabilir
      Yine de bu tutum, eleştirmekten çok takdir edilmeye değer

    • Orijinal yazının neden asıl proje yerine bir fork’a bağlantı verdiğini bilmiyorum. Asıl projede alternatif olarak kullanılabilecek bir bookmarklet sürümü var
      https://github.com/jswanner/DontF-WithPaste?tab=readme-ov-fi...

    • Uzantının kaynak kodunu indirip Chrome uzantıları geliştirici modunda “Paketlenmemiş uzantı yükle” seçeneğini kullanırsanız bu sorunu aşabilirsiniz. Böylece uzantının gizlice değişmeyeceğinden emin olabilirsiniz
      Ancak bu uzantıya tüm siteler için izin vermiyorum; yalnızca site bazında etkinleştirip kullanıyorum

    • Bu yüzden tarayıcı uzantılarının kurulumu ve güncellenmesi için sistem paket yöneticisi kullanıyorum
      Paket deposunda gerekli tarayıcı uzantısı yoksa paketi bizzat ben katkı olarak ekliyor, sürekli doğrulama ve bakım sorumluluğunu üstleniyorum

  • Bu sorunu aşmak için Mac’te genellikle URL alanı gibi bir yere yapıştırılan metni sürükleyip bırakıyorum
    Ama güvenlik adına yapıştırmayı engellemek, her yerde aşırı kısa zaman aşımı sınırlarından hemen önce gelen kadar berbat derecede aptalca bir iş
    Keşke bu kararları alan insanlarla bizzat tanışabilsem

    • Hassas veri barındırdığı pek söylenemeyecek bir web sitesine 30 dakika otomatik çıkış uygulamam istenmişti. Çünkü harici bir sızma testi şirketi kısa bir zaman sınırı olmamasını sorun olarak işaretlemişti
      Müşteriye başarılı bir sızma testi sonucu gösterebilmek için tüm bulgulara uymaktan başka çaremiz yoktu. Herkes bunun aptalca bir talep olduğunu biliyordu, ama yönetim uygulamak dışında seçenek bırakmadı

    • Bir süre önce login.gov’da yaşadığım aptalca akış. Parola yöneticisinde kayıtlı bir giriş vardı; hatırlamıyordum ama çalıştı. Sonra site bir kimlik doğrulama uygulaması kodu istedi, fakat kimlik doğrulama uygulamalarında login.gov kaydı yoktu
      “Başka bir yöntemle giriş yap” düğmesine bastım; o başka yöntem de kimlik doğrulama uygulaması kullanmaktı. “Kod alamıyorsanız?” seçeneğine basınca hesabı silmem gerektiğini söyledi
      Hesap silmeye bastığımda bir e-posta gönderdi; e-postada da başka bir hesap silme e-postası almak için 24 saat beklemem gerektiği yazıyordu. 24 saat sonra hesabı silebileceğim e-postayı aldım
      O hesapta ne vardı bilmiyorum. Giriş amacına bakılırsa hassas olabilir gibi görünüyor; ama bu kadar hassas ve önemliyse neden en yıkıcı işlem olan hesap silme mümkün? Neden yalnızca e-postayla silinebiliyor da doğrulama kodu alınamıyor?

    • MS Remote Desktop bile yapıştırmaya izin vermiyor
      Parola yöneticilerinin ne için var olduğunu sanıyorlar?

  • Mac’te Hammerspoon kullanıyorum ve Cmd+Shift+V kısayolunu yapıştırmak yerine gerçek karakterleri yazacak şekilde ayarladım. Birileri böyle bir şey yaptığında her seferinde çalışıyor
    hs.hotkey.bind({"cmd", "shift"}, "V", function() hs.eventtap.keyStrokes(hs.pasteboard.getContents()) end)

    • Windows’ta aynı şeyi AutoHotkey ile yapıyorum. Uzak bağlantı GUI’sinin varsayılan olarak uzak panoyu kullandığı durumlarda ya da yapıştırmayı desteklemeyen eski masaüstü uygulaması kontrollerinde de faydalı olmuştu
  • Keyboard Maestro da bu tür işler için harika bir uygulama; garip davranışları önlemek için tuş girişleri arasına uygun bir gecikme de koyuyor. Yaklaşık 0,05 saniye kadar.

    • Windows’ta aynı işi AHK ile yapıyorum ve aynı kısayolu kullanıyorum. Sadece her tuş girişi arasına 10–50 ms kadar küçük bir gecikme koyuyorum. Aksi halde giriş bazen bozulabiliyor.

    • Ben de ekledim ama hatırladığım kadarıyla Cmd+Shift+V “biçimlendirmeden yapıştır” olduğu için shift yerine option kullanıyorum
      -- https://news.ycombinator.com/item?id=39640745
      hs.hotkey.bind({"cmd", "alt"}, "V", function()
      hs.eventtap.keyStrokes(hs.pasteboard.getContents())
      end)

    • Bu yöntem Google Sheets’in aşırı giriş yakalamasını da çözüyor.

  • Bu tür şeyler için bir eklentiye güvenmek zorunda kalmamalıyız; tarayıcıdan ayarlanabilmeli.
    Firefox’ta dom.event.clipboardevents.enabled değiştirilebiliyor.

    • Yalnızca “yapıştır” olayını seçmeli olarak kapatabilsek iyi olurdu. İş araçlarında “bu değeri kopyalamak için tıkla” gibi düğmeler çok kullanışlı; kötü niyetli sitelerden kaçınmak için pano olaylarını her kapattığımda bu özelliği kullanamamak üzücü.

    • Hissedildiği kadarıyla bu ayar bazı web uygulamalarında yapıştırma işlevini bozuyor. Örneğin belirli terminal emülatörleri veya metin düzenleyicileri.

    • Sağ tıklarken Shift’e basılı tutarsanız menüyü zorla açmak da mümkün.

    • Eskiden bu ayar Google Docs’ta kopyala/yapıştırı bozuyordu. Bir süredir denemediğim için şimdi düzelmiş olabilir.

  • Sitelerin yapıştırmayı engellemesinden ben de nefret ediyorum; bu yüzden bu uzantıya sevindim. Özellikle hesap numarası/yönlendirme numarası ya da e-posta adresi doğrulama gibi yerlerde; ayrıca parola yöneticilerini de bozuyor. Zayıf parolaları engelleyeceğiz diye karmaşık parola kuralları uygulayıp bir de yapıştırmayı engellemek doğal olarak sinir bozucu.
    Ama böyle bir güvenlik önlemini bir web uygulamasına bizzat uyguladığım da oldu. Gereksinim olarak geldi, ben de uyguladım; müşteriye de “herkes” bunun kullanıcı deneyimi için kötü olduğunu ve güvenlik açısından da büyük ölçüde ters teptiğini biliyorken neden yapmamız gerektiğini sordum.
    Yanıt uyumluluktu. Güvenlik denetiminden geçmek ve büyük müşterilere ya da sigortacılara sektör standardı güvenlik önlemlerine sahip olduklarını kanıtlamak zorundaydılar.
    Ne yazık ki bankalar parola yöneticisi kullanan %2’yi umursamıyor. Geri kalanlar hâlâ parolalarını ezberliyor, unutuyor ve 2003’teymiş gibi bunu şaka konusu yapıyor.

    • “Uyumluluk yüzünden yapmak zorundayız” deniyor ama gerçekten öyle mi?
      Makul şekilde karşı çıkılamayacak bir uyumluluk gereksinimi gördüğümü hatırlamıyorum. Bu sadece aşırı hevesli uyumluluk danışmanlarıyla kullanıcıları pek umursamayan ekiplerin bir araya gelmesinin sonucu. İnsanlar hiçbir şeyi doğru dürüst sorgulamıyor.

    • Bizim PCI uyumluluğu denetimimiz, giriş formu alanlarında otomatik tamamlamayı devre dışı bırakmadığımızı belirtti. Yapıştırmayı devre dışı bırakmakla aynı şey değil ama o yöne gidiyor.
      Şahsen parola yöneticimi (Bitwarden) kullanmama engel olan sitelerden vazgeçiyorum.

    • Yapıştırma engelini aşma yöntemleri çok yaygınlaşırsa aynı siteler sonunda sanal klavye uygulayacak.
      Dokunmatik ekran kullanıcıları için bu fazla kolaysa sıradaki şey sanal klavyeye tıklayan sanal fare olabilir. İnsan ile bilgisayarı ayırt ediyoruz diye fare ivmesini de rastgele değiştirebilirler.

  • Daha önce burada paylaşılmış alternatif bookmarklet şu:
    [1]: https://bookmarkl.ink/ashtonmeuser/6e3869d8e468e016f22a4b4de...

    • Bookmarklet’ler gerçekten hafife alınıyor. Bu sorun için basit ve daha önemlisi okunabilir bir düzeltme.
  • Yapıştırma çalışmadığında genelde sağ tık → öğeyi incele yapıp konsola $0.value="value from clipboard" yazıyorum. Neredeyse her yerde çalışıyor.
    Yapıştırmaya müdahale etmek otomatik doldurmayı kapatmaya benziyor; HTML5 standardı bunun yalnızca ne zaman kapatılması gerektiğini oldukça açık söylüyor: “özellikle hassas bir değer (ör. nükleer silah etkinleştirme kodu) ya da asla yeniden kullanılmayacak bir değer (ör. banka girişi için tek kullanımlık anahtar)”

    • Bu kısım, güvenliği zedeleyen bir standart hatası gibi görünüyor. Dayanağı ne? İnsan parmaklarının parola yöneticilerinden daha az hata yaptığı mı?
      Aklıma gelen tek şey, kötü amaçlı yazılımın pano değerini değiştirip kullanıcıyı yanlış değeri yapıştırmaya kandırması. Ama o senaryoyu açarsak kötü amaçlı yazılımın elle giriş alanlarıyla oynayabileceği türlü türlü yol da var.
  • Ctrl-F yakalama da aynı seviyede.

    • Tarayıcıda bir anlama gelen kısayol, başka uygulamalarda çoğu zaman bambaşka bir anlama gelebiliyor. Bu tür uygulamalar web uygulamasına dönüştükçe kısayol çakışmaları ortaya çıkabiliyor.
      Google Docs’u örnek alırsak, bir belgede veya e-tabloda Ctrl-F’ye basınca tarayıcı aramasını mı istersiniz, yoksa uygulamanın kendi aramasını mı? Kullanıcıların büyük çoğunluğu uygulamanın aramasını ister. Bir haber sitesini okurken ise çoğu kişi tarayıcı aramasını bekler.
      Bu, katı kuralların her zaman istisnaları olduğu anlamına geliyor. Ancak asıl metindeki kopyala/yapıştır sorunu için istisna yok. Pazarlama/izleme saçmalıklarıyla panomu kurcalamayın.

    • Meşrulaştırılabilecek yarı yasal durumlar da var. Örneğin bir Notion veritabanına bakarken standart Ctrl-F neredeyse işe yaramaz; belge aramasının sonuçları Notion API üzerinden getirmesi ve bazen ekranda görünen öğelerle ilgili sonuçları da bulması gerekir.
      “Yarı” dememin nedeni, aslında başka bir kısayola eşlenmesini tercih etmem. Yine de kullanıcının yeniden eşlemek isteyebileceği argümanını anlıyorum.
      Sonuçta bu, en başta böyle bir belge işleme yaklaşımı seçme kararından kaynaklanıyor. Çevrimiçi uygulamalar ile web sayfaları arasındaki sınırda karmaşık bir tartışmaya dönüşüyor.

    • Yakın zamanda, yakalandıktan sonra Ctrl-F’ye bir kez daha basınca tarayıcı arama kutusunun açıldığını fark ettim.
      Hangi site olduğunu hatırlamıyorum ama yakalanan arama kutusunda bunu söyleyen bir ipucu vardı. Redocly aramasında da olur mu diye denedim; ipucu yoktu ama çalıştı.
      Bunun genel olarak çalışıp çalışmadığından, yoksa Redocly arayüzünün belgelenmemiş bir özelliği olup geliştiricilerin özellikle düşünmediği yerlerde çalışmayacağından emin değilim.
      Ortam Chrome + OSX veya Windows’tu.

  • Tarayıcının web sitelerinin kendi kısayollarını varsayılanların üzerine yazmasına neden izin verdiğini anlamıyorum. Düzgün çalışmasını sağlamak için tam tersine ek kod gerekmiş olmalı gibi geliyor.
    Örneğin Linear, Cmd+F’i yakalayıp her yerde aynı şekilde çalışan tarayıcının yerleşik araması yerine berbat bir şey sunuyor. Bu, WYSIWYG Markdown düzenlemeyi istememenin mümkün olmadığını düşünen o Linear.

    • Stripe’ın API belgeleri bunu yapıyor ve gerçekten sinir bozucu. M2 MacBook Pro’mu birkaç saniyeliğine donduruyor.
      2024’te hâlâ belgeleri sadece grep’leyememek inanılır gibi değil.
  • Orijinal gönderinin, asıl depoya kıyasla anlamlı bir iyileştirmesi olmayan bir fork paylaşıp 399 upvote aldığını başkaları da fark etti mi?

    • Asıl deponun yazarı Firefox desteği PR’ını reddetmiş; bu yüzden fork sahibi manifest’e 6 satır eklemek için fork etmiş.
      https://github.com/jswanner/DontF-WithPaste/pull/29
      Yine de ilgisiz .gitignore değişikliğinin asıl PR’da yeri olmadığını kabul ediyorum.

    • Bu Firefox için, diğeri ise Chrome için; belki de oldukça anlamlı bir yükseltmedir.

    • Upvote’ları “yararlı araç için teşekkürler”den çok “evet, ben de böyle şeylerden nefret ediyorum” gibi bir nedenle almış gibi görünüyor.

    • Fork, Firefox desteği için; zaten Chrome kullanmayan biri olarak bunun anlamlı bir yükseltme olduğunu düşünüyorum. Asıl depoyu görmek kolay, ama GitHub’da belirli bir fork’u bulmak çok daha zahmetli.
      Bu kadar rahatsız ediciyse bir dahaki sefere sadece kendime saklarım. HN’deki diğer insanlara ilginç bir şeyi duyurmak için bir sebep yok demek ki.

    • Doğru. Üst depoyla karşılaştırıldığında değişen dosya sayısı 3; değişiklikler de yalnızca .gitignore ve fork deposuna güncellenmiş URL’den ibaret.