Tüm Hizmetler
Markalar
Oto / Vasıta
Airbag Tamircileri Araç Beyin ve Elektronik Tamiri Araç Kaplama Merkezleri Araç Kiralama Araç Motor Yenileme Rektifiye Araç Yedek Parça Satışı Benzinlik / Akaryakıt İstasyonları Bisiklet Tamiri / Bisikletçi Çekici / Oto Kurtarma / Oto Çekici Deniz Araçları Tamiri Lastik Yol Yardım LPG Otogaz Satış ve Tamircileri Motor Galerileri Motor Tamiri Motorsiklet Tamiri Oto Akü Satışı ve Değişimi Oto Camcı Oto Döşemeciler Oto Egzoz / Egzozcu Oto Ekspertizler Oto Elektrikçiler Oto Fren-Balata Oto Galeriler Oto Kaportacılar ve Oto Boyacılar Oto Kilitçiler - Oto Anahtarcılar Oto Klima Tamiri ve Gaz Dolumu Oto Lastik / Lastikçi Oto Radyatör Tamircileri Oto Radyo/Teyp ve Ses Sistemleri Oto Tamir ve Bakım Oto Tunning ve Oto Aksesuarcıları Oto Yıkamacılar ve Oto Kuaförleri Otoparklar Rotbalans Şanzıman Tamiri Scooter Tamircileri Yat / Tekne Kiralama Yat Bakım Onarım
Sağlık
112 Acil Hizmetleri Acil Tıp Uzmanı Ağız ve Diş Sağlığı Klinikleri Aile Danışmanları Aile Hekimleri Akupunktur Androloglar Astım ve Solunum Yolu Hastalıkları Uzmanları Cinsel Sağlık Danışmanları Çocuk Diş Hekimleri (Pedodonti) Çocuk Doktorları Çocuk Kardiyologları Çocuk Nörologları Çocuk Psikiyatristleri Dahiliye (İç Hastalıkları) Dermatologlar Dermatopatologlar Diş Hekimleri Diş Hekimleri Diyaliz Uzmanları Diyetisyenler ve Beslenme Uzmanları Doğal ve Bitkisel Tedavi Uzmanları Doğum Klinikleri Ecza Depoları Eczaneler Endokrinologlar Enfeksiyon Hastalıkları Uzmanları Estetik Cerrahlar Evde Sağlık Hizmetleri Fizyoterapi Merkezleri Gastroenterologlar Genel Cerrahlar Geriatri Uzmanları Göğüs Cerrahları Göz Doktorları Göz Hastaneleri Hacamat ve Sülük Tedavisi İlk Yardım Merkezleri İş Sağlığı ve Güvenliği Uzmanları İşitme Cihazı Satış Merkezleri İşitme ve Konuşma Terapistleri İşyeri Hekimleri Kadın Hastalıkları ve Doğum Uzmanları (Jinekoloji) Kalp Damar Cerrahları Kan Bağışı Merkezleri Kardiyologlar Kemoterapi Merkezleri KOAH Uzmanları Kök Hücre Tedavi Merkezleri Kulak Burun Boğaz Hekimleri (KBB) Mamografi ve Meme Kanseri Taraması Merkezleri Medikal Cihaz Satış ve Servis Metabolik Hastalıklar Uzmanları Mohs Cerrahları MR, Röntgen ve Tomografi Merkezleri Neonatologlar Nörologlar Odyologlar Onkoloji Hastaneleri Optikçiler Ortodonti Uzmanları (Diş Teli) Ortopedistler Özel Ambulans Firmaları Özel Hastaneler Paramedik Parkinson Uzmanları Perinatologlar Plastik Cerrahi Merkezleri Prostat Cerrahları Protezciler Psikiyatristler Psikologlar Pulmonologlar Rehabilitasyon Merkezleri Rinologlar Sağlık Eğitim ve Araştırma Merkezleri Sağlık Eğitmenleri Sağlık Kabinleri Sağlık Ocakları Sağlık Sigorta Danışmanları Sağlık Turizmi Danışmanları Tıp Merkezleri Tüp Bebek Uzmanları Ürologlar Yaşlı Bakım Hizmetleri Yaşlı Bakım Merkezleri
Tamirat-Tadilat
Alarm Güvenlik Sistemi Alçı / Asma Tavan / Kartonpiyer Alüminyum Doğrama Anahtarcı Asansör Tamir ve Bakımı Baca Hizmetleri Bahçıvanlar Barkod Sistemleri Beyaz Eşya Servisi Bilgisayar Tamiri / Bilgisayarcı Bobinaj Boya Badana / Boyacı Bungalov İmalatı Camcı Çatı Tamir ve İmalatı Çilingir Demir Doğramacı Dikiş Makinesi Servis ve Satış Noktaları Doğalgaz Projelendirme Dökümhaneler Duşakabin Elektrikçi Elektronik Kart Tamiri Enerji Sistemleri ve Teknolojileri Fayans Ustası (Fayansçı) Geçiş Kontrol Sistemleri Güneş Enerji Sistemleri Güvenlik Kamera Sistemleri Güvenlik Sistemleri Havalandırma Sistemleri Havuz Sistemleri İş ve Üretim Ekipmanları İzolasyon/Yalıtım Jeneratör Tamir ve Bakımı Kanalizasyon Temizleme Karavan Üretim ve Tasarımı Kaynakçı Klima Servisi / Klimacı Kombi Servisi / Kombici Küçük Ev Aletleri Tamiri Laminat Parkeci Mermer / Granit / Çimstone Mezar Yapımı / Mezarcı Mimarlık / Teknik Çizim Otomasyon Sistemleri Panjur / Kepenk Peyzaj Hizmeti Polisaj Prefabrik Ev Yapımı PVC Doğrama İşleri Robot Süpürge Servisi Saat Tamiri / Saatçi Sıhhi Tesisat Sıvacılar Soba ve Kuzine Soğutma Sistemleri Su Arıtma Servisi Su Kaçağı Tespiti Su Tesisatçısı Teknik Servisler Telefon Tamiri / Telefoncu Televizyon Tamircisi Tente / Branda Tiny House Yapımı Uydu Servisi / Uyducu Vidanjör Hizmetleri Yangın Alarm Sistemi Yazıcı / Fotokopi Tamiri
Tarayıcı Uzantıları Nasıl Tespit Edilir?

Tarayıcı Uzantıları Nasıl Tespit Edilir?

Tarayıcı Uzantılarında Güvenlik

Tarayıcılarda indirilen uzantılarda çeşitli güvenlik açıkları zaman zaman ortaya çıkabilmektedir. Bu güvenlik açıklarından önce bizim bu uzantıların nerede bulunduğunu bilmemiz gerekiyor.

Bu bilgiler bazen çok değerli olabilir. Saldırganlar, bundan en iyi şekilde yararlanmaya çalışırlar. Örnekler:

Tarayıcı uzantısı ayrıntıları, istemcinin başkalarının izlerini takip etmesine yardımcı olabilir, örneğin: “Bu istemci bir Google Translate tarayıcı uzantısı kullanıyor. Bu istemci diğerlerini kullanmaz.”

Eklenti bilgileri, hedeflenen istemci istismarına da yardımcı olabilir, örneğin: “Bu istemci, çalışan A, B ve C açıklarından yararlanarak parola yöneticisinin 2.0.6 sürümüne sahiptir.”

Eklenti kimliği, tarayıcıyı ele geçirmek için şu şekilde kullanılabilir: “Bu geliştiricinin Gmail hesabına zarar verildi; onu kötü amaçlı bir güncelleme göndermek için kullanalım.”

Google Chrome ve Mozilla Firefox, testler yapacağımız iki tarayıcıdır. İlgili web mağazalarından yükleyebileceğiniz en kapsamlı çeşitli tarayıcı eklentileri koleksiyonuna sahiptirler.

Google Chrome’un uzantı sorgularını işleme biçimi, chrome-extension:// URI şemasıdır. Bu URI operatörü, bir tarayıcı uzantısıyla ilgili her şeyi yönetir. Chrome’da bulunan tüm uzantılarla aynı şekilde çalışır:

chrome-extension://<UZANTI KİMLİĞİ>/<İSTENİLEN KAYNAK>

Tıpkı herhangi bir sıradan URL operatörü gibi – file:///, https://, http://, vb. – kaynaklarını doğrudan tarayıcıya yükleyebiliriz.

Bizden size özel bir Tavsiye!

1. Adım: Chrome Tarayıcı Uzantısı Kimliği Nerede Bulunur?

Ancak bunlardan herhangi birini yapmadan önce, tespit etmeye çalıştığımız uzantı için uzantı kimliğine ihtiyacımız var. Bunu şu şekilde elde ediyoruz:

Chrome’daki herhangi bir uzantıyı Google Chrome web mağazasında arayabilir ve uzantının kimliğini yukarıdaki ekran görüntüsünde olduğu gibi URL’de bulabiliriz. Bu, chrome-extension:// operatörüyle kullanacağımız kimlik ile aynıdır.

2. Adım: Tarayıcı Uzantısını Sorgulama

Kimliği elde ettiğimize göre, etkileşim için uygun olup olmadığını görmek için uzantı içinde yer alan bir dosya/web kaynağına ihtiyacımız var. Her Chrome uzantısının kök dizininde manifest.json adında bir dosya vardır. Bu dosya, yüklü Chrome uzantısının sürümü, bazı dosya yolları gibi bilgileri içerir.

Manifest JSON dosyasının, tarayıcı içinde oluşturduğunuzda nasıl göründüğünü buradan öğrenebilirsiniz. Bu örnek, bir Chrome uzantısı olan Google Translate’den alınmıştır. Bu sayfayı oluşturma isteği şuna benzer:

chrome-extension: //aapbdbdomjkkjkaonfhkkikfgjllcleb/manifest.json

Diffeo’yu yüklediyseniz ve bu URL’yi Chrome tarayıcınızın içinden yüklerseniz, manifest.json dosyasını içinde tanımlanan tüm özelliklerle birlikte yükler. Bu, uzantının sürümünü içerir.

Tarayıcılar Hakkında Bilmeniz Gereken tüm Özellikler!

3. Adım: Tarayıcı Uzantısı Kontrol Listesi Oluşturma

Şimdi soru şu oluyor: Eklenti popülaritesine göre yeterince Chrome uzantısı kimliği toplayacak olsaydık, yüklü her uzantının manifest.json’unu isteyebilir ve en azından bunun hangi sürüm olduğunu öğrenebilir miydik?

Bu amaçla, “ext” adında bir JavaScript dizisi tanımladım, buradan fetch () kullanarak manifest.json dosyasını almaya çalışacak; ve sonra JSON nesnesini ayrıştırın ve her şeyi uzantının kendisinden sonra adlandırılan dizinin dizininde depolayın.

Daha sonra tüm uzantıları yükleyeceğim ve her birini açtıktan sonra programlı olarak tespit edip edemeyeceğime bakacağım.

Çalıştığı görülüyor. Konsoldan da şu şekilde görülüyor:

Biri dışında tüm uzantılar isteği reddetti. Manifest.json talebimi reddetmeyen bir uzantıdan, depolanan JSON nesnesinin tamamını sorguladık.

İçeriden tanımlanan birçok değişkene dikkat ediniz. Uzantı açıklaması, sürüm numarası ve blob URI şeması gibi değişkenler içerirler. İlginçtir ki, uzantı tarafından kullanılan web kaynakları (* .html, * .js, * .css, ve diğerleri).

Öyleyse neden diğer tüm uzantılar istemci tarafı isteği reddetti? Görünüşe göre Google’daki insanlar izleme için kullanılan bu yöntemi biliyorlar ve müşterilerin uzantılarla iletişim kurabileceği kapsamı sınırlamışlar.

İsteğe izin veren uzantıda öne çıkan, JSON değişkeninin “web_accessible_resources” içeriğidir. İnceliyoruz:

Web’den erişilebilen kaynaklar, istemcinin tarayıcı içinden hangi dosya kaynaklarına erişmesine izin verildiğini sınırlamaktan sorumludur. Bu uzantı, değişkenlerden biri olarak “/ *” kullanarak bu etkileşimi tanımlar.

Bu belirli tanımla ilgili sorun, “/ *” joker karakterinin, manifest.json (/manifest.json adresinde bulunur) dahil olmak üzere uzantı içindeki her kaynağı içermesidir. Böylece sorguya neden yanıt verdiğini anlayabilirsiniz.

4. Adım: Google Gotcha’dan Sneaky Peeks ve Prodding’e

Artık Google’ın öngörüsü sayesinde bir uzantıdan herhangi bir web kaynağı talep edemeyeceğimizi biliyoruz. Yapabileceğimiz şey, bizim için uygun olanı talep etmektir.

Her bir uzantıya girip manifest.json adresini ziyaret ettiğimizde, web’den erişilebilen kaynaklar özelliğini okuyabiliriz. Bu şekilde, web kaynaklarını bulabilir ve uygun olup olmadıklarını görmelerini isteyebiliriz.

Bu isteği JavaScript’te nasıl işliyoruz? İstemciden bizim için uygun olan web kaynağına bir GET isteği oluşturmak için JQuery / AJAX’ı kullanabiliriz. Bu aynı zamanda uzantı başına bunun duruma göre bir uygulama olduğu ve çok özel / kodlanmış olduğu anlamına gelir. Parametreler de zamanla değişebilir. Şimdilik, neyin mümkün olduğunu görelim:

Burada her uzantıya gönderilen isteği değiştirdik. İstemci tarafından erişilebilen bir web kaynağı içerir. Web kaynağı bildirime izin veriyorsa, işlemek ve sürüm numarasının ne olduğunu bulmaya çalışıyoruz. Eğer izin vermiyorsa, izin verdiği başka bir şey istiyoruz.

İstek yapılırken, döndürülen durum 200 ise, uzantı yüklenir ve tarayıcı ortamında bulunur. Bir 404 döndürürse, uzantı ya kapalıdır ya da yoktur.

Ya ikisi de geri dönmezse? Bu durumda Chrome, isteğimizle uğraşıyor ve muhtemelen onu, kullanıcının yükleyip yüklemediğini belirleyemeyeceğimiz sürekli bir durumda bırakıyor.

Adım 5: Tell-tale Error ile Deneme

Chrome’un JavaScript konsolunun attığı hataları, bir müşterinin makinesinde bir uzantı bulunup bulunmadığının belirlenmesi için ele alırsak, her birini duruma göre tanımlamaya yardımcı olan bir çerçeve oluşturabiliriz.

Google, özellikle Chrome için, uzantı kimliği mevcut olduğu sürece uzantılardan/uzantılara doğrudan aramaları destekler. Google, API’nin “bir uzantı ile içerik komut dosyaları arasında veya uzantılar arasında mesaj alışverişi desteği içerdiğini” ana hatlarıyla açıklamaktadır. Bu tür taleplerin nasıl yapılacağı burada açıklanmaktadır .

Yalnızca Chrome uzantı API’sini kullanarak uzantıları tespit etmeye çalışırken JavaScript şöyle görünecektir:

var myPort = chrome.extension.connect ('Extension_ID', Object_to_send);

“Fazla Paylaşılan” Uzantılara Dikkat Ediniz

Uzantılar güçlü araçlar olabilir, ancak çoğu güvenlik ve mahremiyete fazla düşünülmeden geliştirilir. Bazı durumlarda, uzantılar herhangi bir bağlamda kaynaklarına erişime izin verir ve bu, bireysel kullanıcılar ve onlar aracılığıyla tüm ağ için bir risk oluşturabilir.

Bu gönderi, uzantıları tespit etmenin yalnızca bir yöntemini özetlemektedir. Aynı sonuçları elde etmenin başka yöntemleri de vardır.

Yorumlar