Gmail uzantı izinleri: OAuth mu, içerik betiği mi?
Bir Gmail uzantısı ya posta kutunuza sunucu tarafında erişim ister ya da yalnızca tarayıcınızda ekrana gelmiş sayfayı okur. Aradaki fark, İzin Ver'e tıklamadan önce anlamaya değer.
Bir uzantı sizden “Gmail’deki tüm e-postalarınızı okuma, oluşturma, gönderme ve kalıcı olarak silme” izni ister. İzin Ver’e tıklarsınız; çünkü istediğiniz şey takip hatırlatıcılarıydı ve bu pencere aradan çekilsin istiyorsunuz.
Bu cümle pazarlama abartısı değil. Yaygın bir OAuth kapsamının dürüst bir tarifi. Bu yazı, Gmail uzantı izinlerinin gerçekte neyi verdiğini, bazı uzantıların bunun yerine kullandığı bambaşka mekanizmayı ve hangisini kurduğunuzu nasıl anlayacağınızı anlatıyor.
Postanızı okumanın iki farklı yolu#
Neredeyse her Gmail aracı bu iki mekanizmadan birini kullanır. Kulağa benzer gelirler ama birbirlerine uzaktan yakından denk değildirler.
| OAuth / Gmail API | İçerik betiği | |
|---|---|---|
| Neye erişir | Sunucu tarafında, posta kutunuza | Baktığınız sayfaya |
| Tarayıcı kapalıyken çalışır | Evet | Hayır |
| Hiç açmadığınız eski postaları okuyabilir | Evet, hepsini | Yalnızca ekrana gelmiş olanı |
| Sizin adınıza posta gönderebilir | İzin verilmişse | Yalnızca arayüzü kullanarak |
| Veri makinenizden çıkar | Genellikle evet, kendi sunucularına | Yalnızca uzantı göndermeyi seçerse |
| Nasıl iptal edilir | Google Hesabı izinlerinden | Uzantıyı kaldırarak |

OAuth yolu#
Google’a yönlendirilirsiniz, karşınıza bir onay ekranı çıkar ve bir uygulamaya hesabınıza erişim izni verirsiniz. Uzantı bundan sonra bir belirteç kullanarak doğrudan Gmail’in sunucularıyla konuşur.
Bir posta entegrasyonu kurmanın standart ve iyi tasarlanmış yolu budur; kendi başına şaibeli bir tarafı yoktur. Randevu araçları, CRM’ler ve posta istemcileri böyle çalışır. Dizüstünüz kapalıyken takip e-postası göndermek gibi işlerin de tek yolu budur.
Asıl önemli olan, hangi kapsamların istendiğidir. Aralarında dağlar kadar fark var:
gmail.readonly— tüm postaları ve ayarları okur. Gönderemez, silemez.gmail.send— sizin adınıza posta gönderir. Okuyamaz.gmail.modify— etiketler dahil okuma, yazma ve değiştirme. Kalıcı olarak silemez.gmail.metadata— yalnızca başlıklar: kimden, ne zaman, konu. Mesaj gövdeleri yok.https://mail.google.com/— kalıcı silme dahil tam erişim. En genişi bu.
Bir takip aracının konuşmaları okuması gerçekten gerekir, muhtemelen göndermesi de. Posta kutusunun tamamı üzerinde silme yetkisine ise nadiren ihtiyacı olur. Dar bir özellik için en geniş kapsamın istendiğini görüyorsanız, orada bir durun. Geliştirici kötü niyetli olduğu için değil; genişlik, o geliştirici bir gün ele geçirilirse patlamanın yarıçapını büyüttüğü için.
Gözden kaçan kısım#
OAuth erişimi vermek, postanızın bir kopyasının başkasının sunucusunda bulunabileceği anlamına gelir; çünkü işleme genellikle orada yapılır. Verileriniz o andan sonra onların güvenliğine, saklama politikasına, bağlı oldukları hukuk düzenine ve bir sonraki şirket devirlerine tabidir.
Google, hassas Gmail kapsamları isteyen uygulamalar için bir doğrulama süreci yürütür; en hassas olanlarda güvenlik değerlendirmesi de yapılır. Bu gerçek bir denetimdir, ama verilerinize sonrasında ne olacağına dair bir garanti değildir.
İçerik betiği yolu#
Bir Chrome uzantısı, açık olan bir sayfanın bağlamında JavaScript çalıştırabilir. Bu şekilde yazılmış bir uzantı, Gmail arayüzünü sizin gördüğünüz gibi görür: tarayıcınızda o an ekrana gelmiş konuşmaları. Başka hiçbir şeyi değil.
Somut olarak bunun anlamı şu:
- Google hesabı erişimi yok. Google Hesabı izinleri listenizde hiçbir şey görünmez; çünkü orada hiçbir şey verilmemiştir.
- Sunucu tarafında erişim yok. Uzantı, hiç açmadığınız bir mesajı okuyamaz; çünkü Gmail’in sunucularıyla hiç konuşmuyordur.
- Siz yokken hiçbir şey olmaz. Tarayıcıyı kapatın, uzantı da var olmayı bırakır.
- Veri yerelde kalabilir. Uzantı veriyi tarayıcı profilinizde saklıyorsa kalabilir. Ama kalmak zorunda değildir: bir içerik betiği de okuduğu her şeyi karşıya yükleyebilir.
Son madde, dürüst uyarının kendisi. İçerik betiği daha dar bir yetenektir, kendiliğinden bir gizlilik garantisi değil. Doğru soru yalnızca “neye erişebiliyor” değil, aynı zamanda “okuduğu şey nereye gidiyor”.
Takas, açık açık#
İki yaklaşımdan biri diğerinden düpedüz iyi değil:
- OAuth size erişim genişliği kazandırır. Zamanlanmış gönderim, sunucu tarafında işleme, cihazlar arasında çalışma, hiç açmadığınız postaları görme. Bunlardan birine ihtiyacınız varsa, bir içerik betiği bunu sağlayamaz.
- İçerik betiği size sınırlama kazandırır. Daha küçük bir yüzey, hesap düzeyinde verilmiş hiçbir izin ve her şeyin makinenizde kalma ihtimali.
Asıl soru, aracın özelliklerinin istediği erişimi gerçekten gerektirip gerektirmediği. Zaten baktığınız konuşmaları öne çıkaran bir takip aracının, posta geçmişinizin tamamına sunucu tarafından erişmeye ihtiyacı yoktur. Buna rağmen istiyorsa, ilginç olan kısım tam da bu uyumsuzluktur.
Halihazırda neye izin verdiğinizi nasıl kontrol edersiniz#
Bugün on dakikanıza değer:
- Google Hesabı → Güvenlik → Hesap erişimi olan üçüncü taraf uygulamalar bölümünü açın. Belirteci olan her uygulama, kapsamlarıyla birlikte listelenir.
- Tanımadığınız veya artık kullanmadığınız ne varsa arayın. İki yıl önce denediğiniz araçlar hâlâ orada duruyordur.
- Gerekçelendiremediğiniz her şeyin erişimini kaldırın. İptal anında geçerli olur.
- Sonra chrome://extensions sayfasını ayrıca kontrol edin. OAuth izni olmayan bir uzantı Google listesinde hiç görünmez; yani bunlar birbirinden farklı iki denetimdir.
İnsanlar sıklıkla, 2023’te kullanmayı bıraktıkları aracın posta kutularına hâlâ okuma erişimi olduğunu fark ediyor.
Kurmadan önce sorulmaya değer sorular#
- OAuth istiyor mu? İstiyorsa hangi kapsamları ve bunlar yaptığı işle örtüşüyor mu?
- Verilerim nerede işleniyor? Benim makinemde mi, onların sunucusunda mı?
- Ne saklanıyor ve ne kadar süreyle?
- Kaldırdığımda ne oluyor? Yerel depolama uzantıyla birlikte gider; sunucu tarafındaki kopyalar gitmez.
- Ben çevrimdışıyken çalışması gerekiyor mu? Gerekmiyorsa sunucu erişimine de ihtiyacı yoktur.
- Bir yapay zeka özelliği var mı, varsa nerede çalışıyor? “Bu konuşmayı özetle” ifadesi, cihaz üzerinde çalışan bir modeli de anlatabilir, e-postanız istek gövdesinde bir sağlayıcıya gidip gelen bir turu da. Bu ikisi çok farklı şeyler ve anlamaya değer.
Bir şirket bu soruları kendi sitesinde açıkça yanıtlayamıyorsa, cevap zaten budur.
Neden dar yolu seçtik#
Kendi konumumuz konusunda şeffaf olalım: CommitLatch hiç Gmail OAuth kullanmıyor. Tarayıcınızda zaten ekrana gelmiş konuşma içeriğini bir içerik betiği aracılığıyla okuyor, kuyruğunu yerel Chrome profilinizde saklıyor ve yapay zekasını varsayılan olarak cihaz üzerinde çalıştırıyor. Google Hesabı izinleri listenizde iptal edeceğiniz hiçbir şey yok; çünkü hiçbir şey verilmedi.
Bu, gerçek bedelleri olan bilinçli bir takas: tarayıcınız kapalıyken hiçbir şey yapamaz, hiç açmadığınız postalara erişemez ve makineler arasında senkronize olmaz. Bir takip aracı için takasın doğru tarafının bu olduğunu düşünüyoruz. Ama sonuçta bu bir takas ve siz, araçtan gerçekte ne yapmasını istediğinize uyan tarafı seçmelisiniz.
Gmail uzantı izinleri SSS#
Bir Gmail uzantısı gerçekte neye erişir?
Bu tamamen mekanizmaya bağlı. OAuth ve Gmail API kullanan bir uzantıya, belirli kapsamlar altında posta kutunuza sunucu tarafında erişim verilir; tarayıcınız kapalıyken bile hiç açmadığınız postaları okuyabilir. İçerik betiği kullanan bir uzantı ise yalnızca tarayıcınızda o an ekrana gelmiş sayfayı görür.
Hangi OAuth kapsamlarına karşı temkinli olmalıyım?
En genişi, kalıcı silme dahil tam erişim verir. Yalnızca okuma, yalnızca gönderme, silme olmadan değiştirme ve yalnızca meta veri için daha dar kapsamlar mevcut. Sorulmaya değer soru, istenen kapsamın aracın gerçekte yaptığı işle örtüşüp örtüşmediğidir: bir takip aracının posta kutusunun tamamı üzerinde silme yetkisine nadiren ihtiyacı olur.
İçerik betiği kullanan bir uzantı kendiliğinden daha mı güvenli?
Yeteneği daha dardır, ki bu bir garantiyle aynı şey değildir. Bir içerik betiği hiç açmadığınız postalara erişemez ve hesap düzeyinde hiçbir izin tutmaz; ama okuduğu her şeyi yine de karşıya yükleyebilir. Doğru soru hem neye erişebildiği hem de okuduğu şeyin nereye gittiğidir.
Halihazırda neye izin verdiğimi nasıl kontrol ederim?
Google Hesabınızı açın, ardından Güvenlik, ardından hesap erişimi olan üçüncü taraf uygulamalar bölümüne gidin. Belirteç tutan her uygulama kapsamlarıyla birlikte listelenir ve iptal anında geçerli olur. chrome://extensions sayfasını ayrıca kontrol edin: OAuth izni olmayan bir uzantı Google listesinde hiç görünmez, yani bunlar birbirinden farklı iki denetimdir.
Bir uzantıyı kaldırmak verilerimi siler mi?
Tarayıcı profilinde yerel olarak saklanan her şeyi siler. Bir geliştiricinin sunucusunda tutulan kopyaları silmez ve kendi başına bir OAuth iznini iptal etmez. Aracın hesap erişimi olmuşsa, bunu ayrı bir adım olarak Google Hesabınızdan iptal edin.
Uzantının yapay zeka özellikleri varsa ne olur?
Modelin nerede çalıştığını sorun. “Bu konuşmayı özetle” ifadesi, cihaz üzerinde çalışan bir modeli de anlatabilir, e-postanız gövdesinde olacak şekilde bir sağlayıcıya ya da geliştiricinin kendi sunucusuna gönderilen bir ağ isteğini de. Bunlar çok farklı düzenlemeler ve hangisini kullandığını açıkça söylemeyen bir araç soruyu zaten yanıtlamıştır.
