From 3216f41a03dfb03a928bd4e1b7772a44c173b652 Mon Sep 17 00:00:00 2001 From: Elbert Alias <77259+AliasIO@users.noreply.github.com> Date: Fri, 9 Oct 2020 12:17:39 +1100 Subject: [PATCH] Add Google Workspace detection, add DNS resolution to NPM driver --- src/drivers/npm/driver.js | 42 ++++++++++++++++++- .../webextension/_locales/ca/messages.json | 1 + .../webextension/_locales/de/messages.json | 1 + .../webextension/_locales/el/messages.json | 1 + .../webextension/_locales/en/messages.json | 1 + .../webextension/_locales/es/messages.json | 1 + .../webextension/_locales/fa/messages.json | 1 + .../webextension/_locales/fr/messages.json | 1 + .../webextension/_locales/gl_ES/messages.json | 1 + .../webextension/_locales/gr/messages.json | 1 + .../webextension/_locales/id/messages.json | 1 + .../webextension/_locales/it/messages.json | 1 + .../webextension/_locales/ja/messages.json | 1 + .../webextension/_locales/ko/messages.json | 1 + .../webextension/_locales/pl/messages.json | 1 + .../webextension/_locales/pt/messages.json | 1 + .../webextension/_locales/pt_BR/messages.json | 1 + .../webextension/_locales/ro/messages.json | 1 + .../webextension/_locales/ru/messages.json | 1 + .../webextension/_locales/sk/messages.json | 1 + .../webextension/_locales/tr/messages.json | 1 + .../webextension/_locales/uk/messages.json | 1 + .../webextension/_locales/uz/messages.json | 1 + .../webextension/_locales/zh_CN/messages.json | 1 + src/drivers/webextension/css/styles.css | 15 +++++++ src/drivers/webextension/html/popup.html | 14 +++++-- .../images/icons/Google Workspace.svg | 3 ++ src/drivers/webextension/js/driver.js | 6 --- src/drivers/webextension/manifest.json | 3 +- src/technologies.json | 26 +++++++++++- src/wappalyzer.js | 4 ++ 31 files changed, 124 insertions(+), 12 deletions(-) create mode 100644 src/drivers/webextension/images/icons/Google Workspace.svg diff --git a/src/drivers/npm/driver.js b/src/drivers/npm/driver.js index 474e7d3d0..cc8e1cec0 100644 --- a/src/drivers/npm/driver.js +++ b/src/drivers/npm/driver.js @@ -1,5 +1,6 @@ const { URL } = require('url') const fs = require('fs') +const dns = require('dns').promises const path = require('path') const http = require('http') const https = require('https') @@ -227,6 +228,8 @@ class Site { this.listeners = {} this.pages = [] + + this.dns = [] } log(message, source = 'driver', type = 'log') { @@ -629,6 +632,44 @@ class Site { html = batches.join('\n') } + // DNS + if (!this.dns.length) { + try { + const records = {} + + ;[ + records.cname, + records.ns, + records.mx, + records.txt, + ] = await this.promiseTimeout( + Promise.all([ + dns.resolveCname(url.hostname), + dns.resolveNs(url.hostname), + dns.resolveMx(url.hostname.replace(/^www\./, '')), + dns.resolveTxt(url.hostname.replace(/^www\./, '')), + ]) + ) + + this.dns = Object.keys(records).reduce((dns, type) => { + dns[type] = dns[type] || [] + + Array.prototype.push.apply( + dns[type], + records[type] + .map((value) => (value.exchange ? value.exchange : value)) + .flat() + ) + + return dns + }, {}) + + this.onDetect(analyze({ dns: this.dns })) + } catch (error) { + // Continue + } + } + // Validate response if (url.protocol !== 'file:' && !this.analyzedUrls[url.href].status) { await page.close() @@ -640,7 +681,6 @@ class Site { this.onDetect(analyzeDom(dom)) this.onDetect(analyzeJs(js)) - this.onDetect( analyze({ url, diff --git a/src/drivers/webextension/_locales/ca/messages.json b/src/drivers/webextension/_locales/ca/messages.json index 75c2eb11c..11ae2647d 100644 --- a/src/drivers/webextension/_locales/ca/messages.json +++ b/src/drivers/webextension/_locales/ca/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "Aquesta extensió envia informació anònima sobre els llocs web que visiteu, inclosos el nom de domini i les tecnologies identificades a wappalyzer.com. Això pot desactivar-se a Opcions." }, "privacyPolicy": { "message": "Política de privadesa" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "Taulers de missatgeria" }, "categoryName3": { "message": "Gestor de bases de dades" }, diff --git a/src/drivers/webextension/_locales/de/messages.json b/src/drivers/webextension/_locales/de/messages.json index 84e40ecc7..7f2a05ed5 100644 --- a/src/drivers/webextension/_locales/de/messages.json +++ b/src/drivers/webextension/_locales/de/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "Diese Erweiterung sendet anonyme Informationen über Websites, die Sie besuchen, einschließlich der Domain und der identifizierten Technologien, an wappalyzer.com. Dies kann in den Einstellungen deaktiviert werden." }, "privacyPolicy": { "message": "Datenschutzerklärung" }, "createAlert": { "message": "Alarm für diese Website erstellen" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "Nachrichten Board" }, "categoryName3": { "message": "Datenbankverwaltung" }, diff --git a/src/drivers/webextension/_locales/el/messages.json b/src/drivers/webextension/_locales/el/messages.json index 69863928b..ed13374df 100644 --- a/src/drivers/webextension/_locales/el/messages.json +++ b/src/drivers/webextension/_locales/el/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "This extension sends anonymous information about websites you visit, including domain name and identified technologies, to wappalyzer.com. This can be disabled in the settings." }, "privacyPolicy": { "message": "Privacy policy" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "Διαδικτυακό Φόρουμ" }, "categoryName3": { "message": "Διαχειριστής Βάσης Δεδομένων" }, diff --git a/src/drivers/webextension/_locales/en/messages.json b/src/drivers/webextension/_locales/en/messages.json index a032a8d63..1ab5d80f3 100644 --- a/src/drivers/webextension/_locales/en/messages.json +++ b/src/drivers/webextension/_locales/en/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "This extension sends anonymous information about websites you visit, including domain name and identified technologies, to wappalyzer.com. This can be disabled in the settings." }, "privacyPolicy": { "message": "Privacy policy" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "Message boards" }, "categoryName3": { "message": "Database managers" }, diff --git a/src/drivers/webextension/_locales/es/messages.json b/src/drivers/webextension/_locales/es/messages.json index a090c7910..f10d889ca 100644 --- a/src/drivers/webextension/_locales/es/messages.json +++ b/src/drivers/webextension/_locales/es/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "This extension sends anonymous information about websites you visit, including domain name and identified technologies, to wappalyzer.com. This can be disabled in the settings." }, "privacyPolicy": { "message": "Privacy policy" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "Gestor de Contenido" }, "categoryName2": { "message": "Foro" }, "categoryName3": { "message": "Gestor de Bases de Datos" }, diff --git a/src/drivers/webextension/_locales/fa/messages.json b/src/drivers/webextension/_locales/fa/messages.json index 6c6ef9af4..932d4e3b4 100644 --- a/src/drivers/webextension/_locales/fa/messages.json +++ b/src/drivers/webextension/_locales/fa/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "این افزونه اطلاعات وب‌سایت‌های بازدید شده توسط شما را به صورت ناشناس ارسال می‌کند، مانند آدرس سایت و تکنولوژی‌های استفاده شده در آن سایت را ارسال می‌کند. اطلاعات بیشتر در wappalyzer.com. شما می‌توانید این افزونه را غیرفعال کنید." }, "privacyPolicy": { "message": "سیاست حفظ حریم خصوصی" }, "createAlert": { "message": "ساخت یک هشدار برای این وبسایت" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "سیستم مدیریت محتوا" }, "categoryName2": { "message": "انجمن پیام" }, "categoryName3": { "message": "مدیریت پایگاه داده" }, diff --git a/src/drivers/webextension/_locales/fr/messages.json b/src/drivers/webextension/_locales/fr/messages.json index 53f382b0b..9c617717a 100644 --- a/src/drivers/webextension/_locales/fr/messages.json +++ b/src/drivers/webextension/_locales/fr/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "This extension sends anonymous information about websites you visit, including domain name and identified technologies, to wappalyzer.com. This can be disabled in the settings." }, "privacyPolicy": { "message": "Privacy policy" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "Forum" }, "categoryName3": { "message": "Gestionnaire de base de données" }, diff --git a/src/drivers/webextension/_locales/gl_ES/messages.json b/src/drivers/webextension/_locales/gl_ES/messages.json index cc553bfff..96b057555 100644 --- a/src/drivers/webextension/_locales/gl_ES/messages.json +++ b/src/drivers/webextension/_locales/gl_ES/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "Esta extensión envía anonimamente información acerca das webs que visitas, incluindo dominio e aplicativos identificados, a wappalyzer.com. Isto pode ser desactivado nas preferencias." }, "privacyPolicy": { "message": "Política de privacidade" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "Taboleiro de mensaxes" }, "categoryName3": { "message": "Xestor de base de datos" }, diff --git a/src/drivers/webextension/_locales/gr/messages.json b/src/drivers/webextension/_locales/gr/messages.json index 6369393c0..cf7e7f0a7 100644 --- a/src/drivers/webextension/_locales/gr/messages.json +++ b/src/drivers/webextension/_locales/gr/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "This extension sends anonymous information about websites you visit, including domain name and identified technologies, to wappalyzer.com. This can be disabled in the settings." }, "privacyPolicy": { "message": "Privacy policy" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "Διαδικτυακό Φόρουμ" }, "categoryName3": { "message": "Διαχειριστής Βάσης Δεδομένων" }, diff --git a/src/drivers/webextension/_locales/id/messages.json b/src/drivers/webextension/_locales/id/messages.json index 52e1d0b2d..0d9504521 100644 --- a/src/drivers/webextension/_locales/id/messages.json +++ b/src/drivers/webextension/_locales/id/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "This extension sends anonymous information about websites you visit, including domain name and identified technologies, to wappalyzer.com. This can be disabled in the settings." }, "privacyPolicy": { "message": "Privacy policy" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "Sistem Pengelola Konten" }, "categoryName2": { "message": "Papan Pesan" }, "categoryName3": { "message": "Pengelola Basis Data" }, diff --git a/src/drivers/webextension/_locales/it/messages.json b/src/drivers/webextension/_locales/it/messages.json index 336c48a57..26d05d176 100644 --- a/src/drivers/webextension/_locales/it/messages.json +++ b/src/drivers/webextension/_locales/it/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "This extension sends anonymous information about websites you visit, including domain name and identified technologies, to wappalyzer.com. This can be disabled in the settings." }, "privacyPolicy": { "message": "Privacy policy" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "Forum" }, "categoryName3": { "message": "Gestore di Database" }, diff --git a/src/drivers/webextension/_locales/ja/messages.json b/src/drivers/webextension/_locales/ja/messages.json index 3e7003934..ab426102c 100644 --- a/src/drivers/webextension/_locales/ja/messages.json +++ b/src/drivers/webextension/_locales/ja/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "この拡張機能は、ドメイン名や特定された技術など、アクセスしたWebサイトに関する匿名情報をwappalyzer.comに送信します。これは設定で無効にできます。" }, "privacyPolicy": { "message": "プライバシーポリシー" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "メッセージボード" }, "categoryName3": { "message": "データベースマネージャー" }, diff --git a/src/drivers/webextension/_locales/ko/messages.json b/src/drivers/webextension/_locales/ko/messages.json index 7fa8a263b..72057cd62 100644 --- a/src/drivers/webextension/_locales/ko/messages.json +++ b/src/drivers/webextension/_locales/ko/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "이 확장 기능은 사이트의 도메인과 식별된 기술을 포함한 익명 정보를 wappalyzer.com에 전송합니다. 이 기능은 설정에서 비활성화 할 수 있습니다." }, "privacyPolicy": { "message": "개인정보처리방침" }, "createAlert": { "message": "이 웹 사이트에 대한 알림 받기" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "포럼 소프트웨어" }, "categoryName3": { "message": "데이터베이스 관리 도구" }, diff --git a/src/drivers/webextension/_locales/pl/messages.json b/src/drivers/webextension/_locales/pl/messages.json index b95230358..60b52e7a6 100644 --- a/src/drivers/webextension/_locales/pl/messages.json +++ b/src/drivers/webextension/_locales/pl/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "To rozszerzenie wysyła anonimowe informacje o stronach, które odwiedzasz, uwzględniając nazwy domen i zidentyfikowane technologie do wappalyzer.com. Opcja może zostać wyłączona w ustawieniach." }, "privacyPolicy": { "message": "Privacy policy" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "System zarządzania treścią" }, "categoryName2": { "message": "Forum" }, "categoryName3": { "message": "Menedżer baz danych" }, diff --git a/src/drivers/webextension/_locales/pt/messages.json b/src/drivers/webextension/_locales/pt/messages.json index f7009ce9b..b167f0e0c 100644 --- a/src/drivers/webextension/_locales/pt/messages.json +++ b/src/drivers/webextension/_locales/pt/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "Esta extensão envia informações anónimas sobre os sites que visitas, incluindo o nome de domínio e as tecnologias identificadas, para o wappalyzer.com. Isso pode ser desativado nas configurações." }, "privacyPolicy": { "message": "Políticas de Privacidade" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "Fórum" }, "categoryName3": { "message": "Gestor de Base de Dados" }, diff --git a/src/drivers/webextension/_locales/pt_BR/messages.json b/src/drivers/webextension/_locales/pt_BR/messages.json index 2d1afb895..1a0037942 100644 --- a/src/drivers/webextension/_locales/pt_BR/messages.json +++ b/src/drivers/webextension/_locales/pt_BR/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "Esta extensão envia informações anônimas sobre os sites que você visita, incluindo domínio e tecnologias identificadas para wappalyzer.com. Este comportamento pode ser desativado nas configurações." }, "privacyPolicy": { "message": "Privacy policy" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "Fórum" }, "categoryName3": { "message": "Gestão de Banco de Dados" }, diff --git a/src/drivers/webextension/_locales/ro/messages.json b/src/drivers/webextension/_locales/ro/messages.json index e76d77bf9..c9fbca333 100644 --- a/src/drivers/webextension/_locales/ro/messages.json +++ b/src/drivers/webextension/_locales/ro/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "This extension sends anonymous information about websites you visit, including domain name and identified technologies, to wappalyzer.com. This can be disabled in the settings." }, "privacyPolicy": { "message": "Privacy policy" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "Forum de discuții" }, "categoryName3": { "message": "Manager baze de date" }, diff --git a/src/drivers/webextension/_locales/ru/messages.json b/src/drivers/webextension/_locales/ru/messages.json index 6fc5d2300..125b96870 100644 --- a/src/drivers/webextension/_locales/ru/messages.json +++ b/src/drivers/webextension/_locales/ru/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "Расширение отправляет обезличенную статистику посещенных сайтов, включая доменное имя и распознанные технологии на wappalyzer.com. Это можно отключить в настройках." }, "privacyPolicy": { "message": "Политика конфиденциальности" }, "createAlert": { "message": "Отправить жалобу на этот сайт" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "Форум" }, "categoryName3": { "message": "Менеджер БД" }, diff --git a/src/drivers/webextension/_locales/sk/messages.json b/src/drivers/webextension/_locales/sk/messages.json index 589bb07ae..96e13a873 100644 --- a/src/drivers/webextension/_locales/sk/messages.json +++ b/src/drivers/webextension/_locales/sk/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "This extension sends anonymous information about websites you visit, including domain name and identified technologies, to wappalyzer.com. This can be disabled in the settings." }, "privacyPolicy": { "message": "Privacy policy" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "Message Board" }, "categoryName3": { "message": "Správca databáz" }, diff --git a/src/drivers/webextension/_locales/tr/messages.json b/src/drivers/webextension/_locales/tr/messages.json index 754f27447..7fb33351a 100644 --- a/src/drivers/webextension/_locales/tr/messages.json +++ b/src/drivers/webextension/_locales/tr/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "Bu eklenti, ziyaret ettiğiniz web site bilgilerini, alan adları ve tespit edilen teknolojiler ile beraber anonim olarak wappalyzer.com'a gönderir. Bunu, eklenti ayarlarından değiştirebilirsiniz." }, "privacyPolicy": { "message": "Privacy policy" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "İçerik Yönetim Sistemi" }, "categoryName2": { "message": "Mesaj Tahtası" }, "categoryName3": { "message": "Veritabanı Yöneticisi" }, diff --git a/src/drivers/webextension/_locales/uk/messages.json b/src/drivers/webextension/_locales/uk/messages.json index b05a909c2..806f9e5ce 100644 --- a/src/drivers/webextension/_locales/uk/messages.json +++ b/src/drivers/webextension/_locales/uk/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "Це розширення надсилає на Wapplayzer.com анонімну інформацію про відвідувані вами веб-сайти, включаючи доменні імена та визначені технології. Це можна відключити в налаштуваннях." }, "privacyPolicy": { "message": "Політика приватності" }, "createAlert": { "message": "Поскаржитись на цей сайт" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "Форум" }, "categoryName3": { "message": "Менеджер БД" }, diff --git a/src/drivers/webextension/_locales/uz/messages.json b/src/drivers/webextension/_locales/uz/messages.json index 3b6ef8a91..6ed72f189 100644 --- a/src/drivers/webextension/_locales/uz/messages.json +++ b/src/drivers/webextension/_locales/uz/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "This extension sends anonymous information about websites you visit, including domain name and identified technologies, to wappalyzer.com. This can be disabled in the settings." }, "privacyPolicy": { "message": "Privacy policy" }, "createAlert": { "message": "Create an alert for this website" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "CMS (KBT)" }, "categoryName2": { "message": "Forum" }, "categoryName3": { "message": "MB boshqaruvi" }, diff --git a/src/drivers/webextension/_locales/zh_CN/messages.json b/src/drivers/webextension/_locales/zh_CN/messages.json index 633fe8aa3..51ef07ce7 100644 --- a/src/drivers/webextension/_locales/zh_CN/messages.json +++ b/src/drivers/webextension/_locales/zh_CN/messages.json @@ -19,6 +19,7 @@ "termsContent": { "message": "此扩展程序会匿名发送您访问的网站信息至 wappalyzer.com,包含域名和检测到的技术。这可以在设置中禁用。" }, "privacyPolicy": { "message": "隐私政策" }, "createAlert": { "message": "为该网站创建提醒" }, + "leadLists": { "message": "Website & contact lists" }, "categoryName1": { "message": "内容管理系统(CMS)" }, "categoryName2": { "message": "信息板" }, "categoryName3": { "message": "数据库管理器" }, diff --git a/src/drivers/webextension/css/styles.css b/src/drivers/webextension/css/styles.css index 7e88a4aed..02dceaeb8 100644 --- a/src/drivers/webextension/css/styles.css +++ b/src/drivers/webextension/css/styles.css @@ -44,6 +44,7 @@ a:hover { border-bottom: 1px solid var(--color-secondary); display: flex; height: 4.5rem; + justify-content: space-between; } .header__logo { @@ -55,6 +56,20 @@ a:hover { display: none; } +.header__cta { + text-align: right; + margin-right: 1.5rem; + white-space: nowrap; +} + +.header__open-in-new { + color: var(--color-primary); + height: 1.1rem; + margin-left: .1rem; + vertical-align: middle; + width: 1.1rem; +} + .footer { align-items: center; background: #fff; diff --git a/src/drivers/webextension/html/popup.html b/src/drivers/webextension/html/popup.html index c41b3d9d3..d175c02fa 100644 --- a/src/drivers/webextension/html/popup.html +++ b/src/drivers/webextension/html/popup.html @@ -13,10 +13,18 @@
- + + +
+ + + + + +
@@ -28,7 +36,7 @@ - +
@@ -75,7 +83,7 @@ - +
diff --git a/src/drivers/webextension/images/icons/Google Workspace.svg b/src/drivers/webextension/images/icons/Google Workspace.svg new file mode 100644 index 000000000..70c62f88d --- /dev/null +++ b/src/drivers/webextension/images/icons/Google Workspace.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/drivers/webextension/js/driver.js b/src/drivers/webextension/js/driver.js index c9f895f0d..07634c86b 100644 --- a/src/drivers/webextension/js/driver.js +++ b/src/drivers/webextension/js/driver.js @@ -63,12 +63,6 @@ const Driver = { ['responseHeaders', 'blocking'] ) - // chrome.webRequest.onCompleted.addListener( - // Driver.onWebRequestComplete, - // { urls: ['http://*/*', 'https://*/*'], types: ['main_frame'] }, - // ['responseHeaders'] - // ) - chrome.tabs.onRemoved.addListener((id) => (Driver.cache.tabs[id] = null)) // Enable messaging between scripts diff --git a/src/drivers/webextension/manifest.json b/src/drivers/webextension/manifest.json index d4c26422a..94956530a 100644 --- a/src/drivers/webextension/manifest.json +++ b/src/drivers/webextension/manifest.json @@ -65,8 +65,9 @@ "webRequest", "webNavigation", "webRequestBlocking", + "dns", "http://*/*", "https://*/*" ], "content_security_policy": "script-src 'self'; object-src 'self'" -} \ No newline at end of file +} diff --git a/src/technologies.json b/src/technologies.json index 632b64395..78c2ad8ce 100644 --- a/src/technologies.json +++ b/src/technologies.json @@ -1064,6 +1064,21 @@ "icon": "Amazon.svg", "website": "https://affiliate-program.amazon.com.au/" }, + "Google Workspace": { + "cats": [ + 30, + 61 + ], + "description": "Google Workspace, formerly G Suite, is a collection of cloud computing, productivity and collaboration tools.", + "dns": { + "MX": [ + "aspmx\\.l\\.google\\.com", + "googlemail\\.com" + ] + }, + "icon": "Google Workspace.svg", + "website": "https://workspace.google.com/" + }, "Amazon Cloudfront": { "cats": [ 31 @@ -1073,6 +1088,9 @@ "Via": "\\(CloudFront\\)$", "X-Amz-Cf-Id": "" }, + "dns": { + "CNAME": "^[a-z0-9]+\\.cloudfront.net$" + }, "icon": "Amazon-Cloudfront.svg", "implies": "Amazon Web Services", "website": "http://aws.amazon.com/cloudfront/" @@ -1145,6 +1163,9 @@ "cats": [ 62 ], + "dns": { + "NS": "\\.awsdns-" + }, "description": "Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.", "icon": "aws.svg", "website": "https://aws.amazon.com/" @@ -12724,6 +12745,9 @@ "__stripe_mid": "", "__stripe_sid": "" }, + "dns": { + "TXT": "stripe-verification=" + }, "description": "Stripe offers online payment processing for internet businesses as well as fraud prevention, invoicing and subscription management.", "html": "]+data-stripe", "icon": "Stripe.svg", @@ -16707,4 +16731,4 @@ "website": "https://www.xt-commerce.com" } } -} \ No newline at end of file +} diff --git a/src/wappalyzer.js b/src/wappalyzer.js index 9083ad1d7..ed63a161b 100644 --- a/src/wappalyzer.js +++ b/src/wappalyzer.js @@ -187,6 +187,7 @@ const Wappalyzer = { robots, meta, headers, + dns, certIssuer, cookies, scripts, @@ -210,6 +211,7 @@ const Wappalyzer = { mm(technology, 'cookies', cookies), mm(technology, 'meta', meta), mm(technology, 'headers', headers), + mm(technology, 'dns', dns), ]) ) ).filter((technology) => technology) @@ -237,6 +239,7 @@ const Wappalyzer = { robots, meta, headers, + dns, certIssuer, cookies, scripts, @@ -254,6 +257,7 @@ const Wappalyzer = { slug: Wappalyzer.slugify(name), url: transform(url), headers: transform(headers), + dns: transform(dns), cookies: transform(cookies), dom: transform(dom, true), html: transform(html),