From f5882705796179d455c7c41b3d588daa2b4bfd56 Mon Sep 17 00:00:00 2001 From: Elbert Alias Date: Sun, 3 Dec 2017 14:23:59 +1100 Subject: [PATCH 001/166] Dont fetch robots.txt on non HTTP requests --- src/wappalyzer.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/wappalyzer.js b/src/wappalyzer.js index a3f714e56..bfa52fd66 100644 --- a/src/wappalyzer.js +++ b/src/wappalyzer.js @@ -117,6 +117,10 @@ class Wappalyzer { return new Promise((resolve, reject) => { var parsed = this.parseUrl(url); + if ( parsed.protocol !== 'http:' && parsed.protocol !== 'https:' ) { + reject(); + } + this.driver.getRobotsTxt(parsed.host, parsed.protocol === 'https:') .then(robotsTxt => { robotsTxt.forEach(disallow => parsed.pathname.indexOf(disallow) === 0 && reject()); From 1e2d6da919f674aed441bdedb84fb6ff5e8f2896 Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Thu, 7 Dec 2017 21:39:58 +0100 Subject: [PATCH 002/166] Fixed inconsistent formatting (#1856) --- src/apps.json | 254 ++++++++++++++++++++++++++------------------------ 1 file changed, 131 insertions(+), 123 deletions(-) diff --git a/src/apps.json b/src/apps.json index 349376559..f3e32468e 100644 --- a/src/apps.json +++ b/src/apps.json @@ -387,16 +387,16 @@ "script": "shop-static\\.afterbuy\\.de", "website": "http://www.afterbuy.de" }, - "Afosto": { - "cats": [ - "6" - ], - "headers": { - "X-Powered-By": "Afosto SaaS BV" - }, - "icon": "Afosto.svg", - "website": "http://afosto.com" - }, + "Afosto": { + "cats": [ + "6" + ], + "headers": { + "X-Powered-By": "Afosto SaaS BV" + }, + "icon": "Afosto.svg", + "website": "http://afosto.com" + }, "Aircall": { "cats": [ "52" @@ -677,7 +677,7 @@ "icon": "Arc Forum.png", "website": "http://arclanguage.org" }, - "ArcGIS API for JavaScript":{ + "ArcGIS API for JavaScript": { "cats": [ "35" ], @@ -746,7 +746,7 @@ "env": "^bitbucket$", "icon": "Atlassian Bitbucket.svg", "implies": "Python", - "html": "
  • Atlassian Bitbucket v([\\d.]+)<\\;version:\\1", + "html": "
  • Atlassian Bitbucket v([\\d.]+)<\\;version:\\1", "meta": { "application-name": "Bitbucket" }, @@ -851,11 +851,12 @@ }, "Bablic": { "cats": [ - "3","9" + "3", + "9" ], - "website":"https://www.bablic.com/", - "env":"^bablic$", - "icon":"bablic.png" + "website": "https://www.bablic.com/", + "env": "^bablic$", + "icon": "bablic.png" }, "Backbone.js": { "cats": [ @@ -947,7 +948,7 @@ "script": "bittads\\.com/js/bitt\\.js$", "website": "http://bittads.com" }, - "Bizweb":{ + "Bizweb": { "cats": [ "6" ], @@ -957,7 +958,8 @@ }, "Blade": { "cats": [ - "18", "22" + "18", + "22" ], "headers": { "X-Powered-By": "blade-([\\w.]+)?\\;version:\\1" @@ -1136,8 +1138,8 @@ "icon": "Bugzilla.png", "implies": "Perl", "website": "http://www.bugzilla.org" - }, - "Bulma": { + }, + "Bulma": { "cats": [ "18" ], @@ -1595,7 +1597,7 @@ "19" ], "env": "^CoinHive$", - "script": "\\/(?:coinhive|(authedmine))(?:\\.min)?\\.js\\;version:\\1?opt-in:", + "script": "\\/(?:coinhive|(authedmine))(?:\\.min)?\\.js\\;version:\\1?opt-in:", "url": "https?://cnhv.co/", "icon": "CoinHive.svg", "website": "https://coinhive.com" @@ -1605,7 +1607,7 @@ "16" ], "html": "(?:]+class=\"coinhive-captcha[^>]+data-key|]+data-key[^>]+class=\"coinhive-captcha)", - "script": "https?://authedmine\\.com/(?:lib/captcha|captcha)", + "script": "https?://authedmine\\.com/(?:lib/captcha|captcha)", "icon": "CoinHive.svg", "website": "https://coinhive.com" }, @@ -1831,7 +1833,7 @@ "script": "tag\\.crsspxl\\.com/s1\\.js", "website": "http://datadesk.crsspxl.com" }, - "Crypto-Loot": { + "Crypto-Loot": { "cats": [ "19" ], @@ -2009,7 +2011,7 @@ "icon": "Debian.png", "website": "http://debian.org" }, - "PHPDebugBar": { + "PHPDebugBar": { "cats": [ "47" ], @@ -2019,7 +2021,7 @@ ], "script": [ "debugbar.*\\.js" - ], + ], "icon": "phpdebugbar.png", "website": "http://phpdebugbar.com/" }, @@ -2932,19 +2934,19 @@ "implies": "PHP", "script": "gm_javascript\\.js\\.php", "website": "http://gambio.de" - }, - "Gatsby": { + }, + "Gatsby": { "cats": [ "12" ], - "html": [ - "
    ", - "" - ], - "icon": "CS Cart.png", - "implies": "PHP", - "website": "http://www.cs-cart.com" - }, - "CacheFly": { - "cats": [ - "31" - ], - "headers": { - "Server": "^CFS ", - "X-CF1": "", - "X-CF2": "" - }, - "icon": "CacheFly.png", - "website": "http://www.cachefly.com" - }, - "Caddy": { - "cats": [ - "22" - ], - "headers": { - "Server": "^Caddy$" - }, - "icon": "caddy.svg", - "implies": "Go", - "website": "http://caddyserver.com" - }, - "CakePHP": { - "cats": [ - "18" - ], - "headers": { - "Set-Cookie": "cakephp=" - }, - "icon": "CakePHP.png", - "implies": "PHP", - "meta": { - "application-name": "CakePHP" - }, - "website": "http://cakephp.org" - }, - "Canon": { - "cats": [ - "40" - ], - "icon": "Canon.png", - "website": "http://www.canon.com" - }, - "Canon HTTP Server": { - "cats": [ - "22" - ], - "headers": { - "Server": "CANON HTTP Server(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "Canon.png", - "implies": "Canon", - "website": "http://www.canon.com" - }, - "Captch Me": { - "cats": [ - "16", - "36" - ], - "env": "^Captchme", - "icon": "Captch Me.svg", - "script": "^https?://api\\.captchme\\.net/", - "website": "http://captchme.com" - }, - "Carbon Ads": { - "cats": [ - "36" - ], - "env": "^_carbonads", - "html": "<[a-z]+ [^>]*id=\"carbonads-container\"", - "icon": "Carbon Ads.png", - "script": "[^\\/]*\\/\\/(?:engine|srv)\\.carbonads\\.com\\/", - "website": "http://carbonads.net" - }, - "Cargo": { - "cats": [ - "1" - ], - "html": "]+Cargo feed", - "icon": "Cargo.png", - "implies": "PHP", - "meta": { - "cargo_title": "" - }, - "script": "/cargo\\.", - "website": "http://cargocollective.com" - }, - "Catberry.js": { - "cats": [ - "12", - "18" - ], - "env": "^catberry$", - "headers": { - "X-Powered-By": "Catberry" - }, - "icon": "Catberry.js.png", - "implies": "Node.js", - "website": "http://catberry.org" - }, - "Catwalk": { - "cats": [ - "22" - ], - "headers": { - "Server": "Catwalk\\/?([\\d\\.]+)?\\;version:\\1" - }, - "icon": "Catwalk.png", - "implies": "Canon", - "website": "http://www.canon.com" - }, - "CentOS": { - "cats": [ - "28" - ], - "headers": { - "Server": "CentOS", - "X-Powered-By": "CentOS" - }, - "icon": "CentOS.png", - "website": "http://centos.org" - }, - "CenteHTTPd": { - "cats": [ - "22" - ], - "headers": { - "Server": "CenteHTTPd(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "CenteHTTPd.png", - "website": "http://cente.jp/cente/app/HTTPdc.html" - }, - "Chameleon": { - "cats": [ - "1" - ], - "icon": "Chameleon.png", - "implies": [ - "Apache", - "PHP" - ], - "meta": { - "generator": "chameleon-cms" - }, - "website": "http://chameleon-system.de" - }, - "Chamilo": { - "cats": [ - "21" - ], - "headers": { - "X-Powered-By": "Chamilo ([\\d.]+)\\;version:\\1" - }, - "html": "\">Chamilo ([\\d.]+)\\;version:\\1", - "icon": "Chamilo.png", - "implies": "PHP", - "meta": { - "generator": "Chamilo ([\\d.]+)\\;version:\\1" - }, - "website": "http://www.chamilo.org" - }, - "Chart.js": { - "cats": [ - "25" - ], - "env": "^Chart$\\;confidence:50", - "icon": "Chart.js.svg", - "script": [ - "Chart(?:\\.bundle)?(?:\\.min)?\\.js\\;confidence:50", - "chartjs\\.org/dist/([\\d.]+(?:-[^/]+)?|master|latest)/Chart.*\\.js\\;version:\\1", - "cdnjs\\.cloudflare\\.com/ajax/libs/Chart\\.js/([\\d.]+(?:-[^/]+)?)/Chart.*\\.js\\;version:\\1", - "cdn\\.jsdelivr\\.net/npm/chart\\.js@([\\d.]+(?:-[^/]+)?|latest)/dist/Chart.*\\.js\\;version:\\1", - "cdn\\.jsdelivr\\.net/gh/chartjs/Chart\\.js@([\\d.]+(?:-[^/]+)?|latest)/dist/Chart.*\\.js\\;version:\\1" - ], - "website": "http://www.chartjs.org" - }, - "Chartbeat": { - "cats": [ - "10" - ], - "env": "^_sf_(?:endpt|async_config)$", - "icon": "Chartbeat.png", - "script": "chartbeat\\.js", - "website": "http://chartbeat.com" - }, - "Cherokee": { - "cats": [ - "22" - ], - "headers": { - "Server": "Cherokee(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "Cherokee.png", - "website": "http://www.cherokee-project.com" - }, - "CherryPy": { - "cats": [ - "18", - "22" - ], - "headers": { - "Server": "CherryPy\\/?([\\d\\.]+)?\\;version:\\1" - }, - "icon": "CherryPy.png", - "implies": "Python", - "website": "http://www.cherrypy.org" - }, - "Chitika": { - "cats": [ - "36" - ], - "env": "ch_c(?:lient|olor_site_link)", - "icon": "Chitika.png", - "script": "scripts\\.chitika\\.net/", - "website": "http://chitika.com" - }, - "Ckan": { - "cats": [ - "1" - ], - "headers": { - "Access-Control-Allow-Headers": "X-CKAN-API-KEY", - "Link": "; rel=shortlink" - }, - "icon": "Ckan.png", - "implies": [ - "Python", - "Solr", - "Java", - "PostgreSQL" - ], - "meta": { - "generator": ".*ckan.*" - }, - "website": "http://ckan.org/" - }, - "ClickHeat": { - "cats": [ - "10" - ], - "env": "^clickHeat", - "icon": "ClickHeat.png", - "implies": "PHP", - "script": "clickheat.*\\.js", - "website": "http://www.labsmedia.com/clickheat/index.html" - }, - "ClickTale": { - "cats": [ - "10" - ], - "env": "^ClickTale", - "icon": "ClickTale.png", - "website": "http://www.clicktale.com" - }, - "Clicky": { - "cats": [ - "10" - ], - "env": "^clicky$", - "icon": "Clicky.png", - "script": "static\\.getclicky\\.com", - "website": "http://getclicky.com" - }, - "Clientexec": { - "cats": [ - "6" - ], - "html": "clientexec\\.[^>]*\\s?=\\s?[^>]*;", - "icon": "Clientexec.png", - "website": "http://www.clientexec.com" - }, - "Clipboard.js": { - "cats": [ - "19" - ], - "env": "^Clipboard$", - "icon": "Clipboard.js.svg", - "script": "clipboard(?:\\.min)?\\.js", - "website": "https://clipboardjs.com/" - }, - "CloudCart": { - "cats": [ - "6" - ], - "icon": "cloudcart.svg", - "meta": { - "author": "^CloudCart LLC$" - }, - "script": "/cloudcart-(?:assets|storage)/", - "website": "http://cloudcart.com" - }, - "CloudFlare": { - "cats": [ - "31" - ], - "env": "^CloudFlare$", - "headers": { - "Server": "cloudflare" - }, - "icon": "CloudFlare.svg", - "website": "http://www.cloudflare.com" - }, - "Cloudera": { - "cats": [ - "34" - ], - "headers": { - "Server": "cloudera" - }, - "icon": "Cloudera.png", - "website": "http://www.cloudera.com" - }, - "CodeIgniter": { - "cats": [ - "18" - ], - "headers": { - "Set-Cookie": "(?:exp_last_activity|exp_tracker|ci_(?:session|(csrf_token)))\\;version:\\1?2+:" - }, - "html": "]+name=\"ci_csrf_token\"\\;version:2+", - "icon": "CodeIgniter.png", - "implies": "PHP", - "website": "http://codeigniter.com" - }, - "CodeMirror": { - "cats": [ - "19" - ], - "env": "^CodeMirror$", - "icon": "CodeMirror.png", - "website": "http://codemirror.net" - }, - "CoinHive": { - "cats": [ - "56" - ], - "env": "^CoinHive$", - "script": "\\/(?:coinhive|(authedmine))(?:\\.min)?\\.js\\;version:\\1?opt-in:", - "url": "https?://cnhv\\.co/", - "icon": "CoinHive.svg", - "website": "https://coinhive.com" - }, - "CoinHive Captcha": { - "cats": [ - "16", - "56" - ], - "html": "(?:]+class=\"coinhive-captcha[^>]+data-key|]+data-key[^>]+class=\"coinhive-captcha)", - "script": "https?://authedmine\\.com/(?:lib/captcha|captcha)", - "icon": "CoinHive.svg", - "website": "https://coinhive.com" - }, - "Comandia": { - "cats": [ - "6" - ], - "env": "^Comandia$", - "html": "]+=['\"]//cdn\\.mycomandia\\.com", - "icon": "Comandia.svg", - "website": "http://comandia.com" - }, - "Commerce Server": { - "cats": [ - "6" - ], - "headers": { - "COMMERCE-SERVER-SOFTWARE": "" - }, - "icon": "Commerce Server.png", - "implies": "Microsoft ASP.NET", - "website": "http://commerceserver.net" - }, - "CompaqHTTPServer": { - "cats": [ - "22" - ], - "headers": { - "Server": "CompaqHTTPServer\\/?([\\d\\.]+)?\\;version:\\1" - }, - "icon": "HP.svg", - "website": "http://www.hp.com" - }, - "Concrete5": { - "cats": [ - "1" - ], - "env": "^CCM_IMAGE_PATH$", - "icon": "Concrete5.png", - "implies": "PHP", - "meta": { - "generator": "concrete5 - ([\\d.ab]+)\\;version:\\1" - }, - "script": "concrete/js/", - "website": "http://concrete5.org" - }, - "Connect": { - "cats": [ - "18" - ], - "headers": { - "X-Powered-By": "^Connect$" - }, - "icon": "Connect.png", - "implies": "Node.js", - "website": "http://www.senchalabs.org/connect" - }, - "Contao": { - "cats": [ - "1" - ], - "html": [ - "", - "]+(?:typolight|contao)\\.css" - ], - "icon": "Contao.png", - "implies": "PHP", - "meta": { - "generator": "^Contao Open Source CMS$" - }, - "website": "http://contao.org" - }, - "Contenido": { - "cats": [ - "1" - ], - "icon": "Contenido.png", - "implies": "PHP", - "meta": { - "generator": "Contenido ([\\d.]+)\\;version:\\1" - }, - "website": "http://contenido.org/en" - }, - "Contens": { - "cats": [ - "1" - ], - "icon": "Contens.png", - "implies": [ - "Java", - "CFML" - ], - "meta": { - "generator": "Contensis CMS Version ([\\d.]+)\\;version:\\1" - }, - "website": "http://www.contens.com/en/pub/index.cfm" - }, - "ContentBox": { - "cats": [ - "1", - "11" - ], - "icon": "ContentBox.png", - "implies": "Adobe ColdFusion", - "meta": { - "generator": "ContentBox powered by ColdBox" - }, - "website": "http://www.gocontentbox.org" - }, - "Contentful": { - "cats": [ - "1" - ], - "html": "<[^>]+(?:https?:)?//(?:assets|downloads|images|videos)\\.contentful\\.com", - "icon": "Contentful.svg", - "website": "http://www.contentful.com" - }, - "ConversionLab": { - "cats": [ - "10" - ], - "icon": "ConversionLab.png", - "script": "conversionlab\\.trackset\\.com/track/tsend\\.js", - "website": "http://www.trackset.it/conversionlab" - }, - "Coppermine": { - "cats": [ - "7" - ], - "html": "|", - "icon": "InProces.png", - "script": "brein/inproces/website/websitefuncties\\.js", - "website": "http://www.brein.nl/oplossing/product/website" - }, - "Incapsula": { - "cats": [ - "31" - ], - "headers": { - "X-CDN": "Incapsula" - }, - "icon": "Incapsula.png", - "website": "http://www.incapsula.com" - }, - "Indexhibit": { - "cats": [ - "1" - ], - "html": "<(?:link|a href) [^>]+ndxz-studio", - "implies": [ - "PHP", - "Apache", - "Exhibit" - ], - "meta": { - "generator": "Indexhibit" - }, - "website": "http://www.indexhibit.org" - }, - "Indico": { - "cats": [ - "1" - ], - "headers": { - "Set-cookie": "MAKACSESSION" - }, - "html": "Powered by\\s+(?:CERN )?(?:CDS )?Indico( [\\d\\.]+)?\\;version:\\1", - "icon": "Indico.png", - "website": "http://indico-software.org" - }, - "Indy": { - "cats": [ - "22" - ], - "headers": { - "Server": "Indy(?:/([\\d.]+))?\\;version:\\1" - }, - "website": "http://indyproject.org" - }, - "InfernoJS": { - "cats": [ - "12" - ], - "env": "^Inferno$", - "icon": "InfernoJS.png", - "website": "https://infernojs.org/" - }, - "Infusionsoft": { - "cats": [ - "32" - ], - "html": [ - "]*name=\"infusionsoft_version\" [^>]*value=\"([^>]*)\" [^>]*\\/>\\;version:\\1", - "]*value=\"([^>]*)\" [^>]*name=\"infusionsoft_version\" [^>]*\\/>\\;version:\\1" - ], - "icon": "infusionsoft.svg", - "website": "http://infusionsoft.com" - }, - "InstantCMS": { - "cats": [ - "1" - ], - "headers": { - "Set-Cookie": "InstantCMS\\[logdate\\]=" - }, - "icon": "InstantCMS.png", - "implies": "PHP", - "meta": { - "generator": "InstantCMS" - }, - "website": "http://www.instantcms.ru" - }, - "Intel Active Management Technology": { - "cats": [ - "22", - "46" - ], - "headers": { - "Server": "Intel\\(R\\) Active Management Technology(?: ([\\d.]+))?\\;version:\\1" - }, - "icon": "Intel Active Management Technology.png", - "website": "http://intel.com" - }, - "IntenseDebate": { - "cats": [ - "15" - ], - "icon": "IntenseDebate.png", - "script": "intensedebate\\.com", - "website": "http://intensedebate.com" - }, - "Intercom": { - "cats": [ - "10" - ], - "env": "^Intercom$", - "icon": "Intercom.png", - "script": "(?:api\\.intercom\\.io/api|static\\.intercomcdn\\.com/intercom\\.v1)", - "website": "http://intercom.io" - }, - "Intershop": { - "cats": [ - "6" - ], - "icon": "Intershop.png", - "script": "(?:is-bin|INTERSHOP)", - "website": "http://intershop.com" - }, - "Invenio": { - "cats": [ - "50" - ], - "headers": { - "Set-cookie": "INVENIOSESSION" - }, - "html": "(?:Powered by|System)\\s+(?:CERN )?(?:CDS )?Invenio\\s*v?([\\d\\.]+)?\\;version:\\1", - "icon": "Invenio.png", - "website": "http://invenio-software.org" - }, - "Ionicons": { - "cats": [ - "17" - ], - "html": "]* href=[^>]+ionicons(?:\\.min)?\\.css", - "icon": "Ionicons.png", - "website": "http://ionicons.com" - }, - "JAlbum": { - "cats": [ - "7" - ], - "icon": "JAlbum.png", - "implies": "Java", - "meta": { - "generator": "JAlbum( [\\d.]+)?\\;version:\\1" - }, - "website": "http://jalbum.net/en" - }, - "JBoss Application Server": { - "cats": [ - "22" - ], - "headers": { - "X-Powered-By": "JBoss(?:-([\\d.]+))?\\;version:\\1" - }, - "icon": "JBoss Application Server.png", - "website": "http://jboss.org/jbossas.html" - }, - "JBoss Web": { - "cats": [ - "22" - ], - "excludes": "Apache Tomcat", - "headers": { - "X-Powered-By": "JBossWeb(?:-([\\d.]+))?\\;version:\\1" - }, - "icon": "JBoss Web.png", - "implies": "JBoss Application Server", - "website": "http://jboss.org/jbossweb" - }, - "JC-HTTPD": { - "cats": [ - "22" - ], - "excludes": "Apache", - "headers": { - "Server": "JC-HTTPD(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "JC-HTTPD.png", - "implies": "Canon", - "website": "http://canon.com" - }, - "JET Enterprise": { - "cats": [ - "6" - ], - "headers": { - "powered": "jet-enterprise" - }, - "icon": "JET Enterprise.svg", - "website": "http://www.jetecommerce.com.br/" - }, - "JS Charts": { - "cats": [ - "25" - ], - "env": "^JSChart$", - "icon": "JS Charts.png", - "script": "jscharts.*\\.js", - "website": "http://www.jscharts.com" - }, - "JTL Shop": { - "cats": [ - "6" - ], - "headers": { - "Set-Cookie": "JTLSHOP=" - }, - "html": "(?:]+name=\"JTLSHOP|]*>Jekyll]+id=\"wrapper_r\"|<[^>]+(?:feed|components)/com_|]+class=\"pill)\\;confidence:50", - "icon": "Joomla.svg", - "implies": "PHP", - "meta": { - "generator": "Joomla!(?: ([\\d.]+))?\\;version:\\1" - }, - "url": "option=com_", - "website": "http://joomla.org" - }, - "JSEcoin": { - "cats": [ - "56" - ], - "env": "^jseMine$", - "script": "^(?:https):?//load\\.jsecoin\\.com/server/load/", - "icon": "JSEcoin.png", - "website": "https://jsecoin.com/" - }, - "K2": { - "cats": [ - "19" - ], - "env": "^K2RatingURL$", - "html": "", - "icon": "Lightspeed.svg", - "script": "http://assets\\.webshopapp\\.com", - "url": "seoshop.webshopapp.com", - "website": "http://www.lightspeedhq.com/products/ecommerce/" - }, - "Lighty": { - "cats": [ - "18" - ], - "headers": { - "Set-Cookie": "lighty_version" - }, - "icon": "Lighty.png", - "implies": "PHP", - "website": "http://gitlab.com/lighty/framework" - }, - "LimeSurvey": { - "cats": [ - "19" - ], - "headers": { - "generator": "LimeSurvey" - }, - "icon": "LimeSurvey.png", - "website": "http://limesurvey.org/" - }, - "LinkSmart": { - "cats": [ - "36" - ], - "env": "^(?:_mb_site_guid$|LS_JSON|LinkSmart(?:_|$))", - "icon": "LinkSmart.png", - "script": "^https?://cdn\\.linksmart\\.com/linksmart_([\\d.]+?)(?:\\.min)?\\.js\\;version:\\1", - "website": "http://linksmart.com" - }, - "Linkedin": { - "cats": [ - "5" - ], - "icon": "Linkedin.svg", - "script": "//platform\\.linkedin\\.com/in\\.js", - "website": "http://linkedin.com" - }, - "List.js": { - "cats": [ - "12" - ], - "env": "^List$", - "icon": "List.js.png", - "script": "^list\\.(?:min\\.)?js$", - "website": "http://www.listjs.com" - }, - "LiteSpeed": { - "cats": [ - "22" - ], - "headers": { - "Server": "^LiteSpeed$" - }, - "icon": "LiteSpeed.svg", - "website": "http://litespeedtech.com" - }, - "Lithium": { - "cats": [ - "1" - ], - "env": [ - "^LITHIUM$" - ], - "headers": { - "Set-Cookie": "LithiumVisitor=" - }, - "html": " ]+Powered by Lithium", - "icon": "Lithium.png", - "implies": "PHP", - "website": "http://www.lithium.com" - }, - "LiveAgent": { - "cats": [ - "52" - ], - "env": "^LiveAgent$", - "icon": "LiveAgent.png", - "website": "http://www.ladesk.com" - }, - "LiveChat": { - "cats": [ - "52" - ], - "icon": "LiveChat.png", - "script": "cdn\\.livechatinc\\.com/.*tracking\\.js", - "website": "http://livechatinc.com" - }, - "LiveJournal": { - "cats": [ - "11" - ], - "icon": "LiveJournal.png", - "url": "\\.livejournal\\.com", - "website": "http://www.livejournal.com" - }, - "LivePerson": { - "cats": [ - "52" - ], - "icon": "LivePerson.png", - "script": "^https?://lptag\\.liveperson\\.net/tag/tag\\.js", - "website": "https://www.liveperson.com/" - }, - "LiveStreet CMS": { - "cats": [ - "1" - ], - "env": "^LIVESTREET", - "headers": { - "X-Powered-By": "LiveStreet CMS" - }, - "icon": "LiveStreet CMS.png", - "implies": "PHP", - "website": "http://livestreetcms.com" - }, - "Livefyre": { - "cats": [ - "15" - ], - "env": [ - "^fyre$", - "^FyreLoader$" - ], - "html": "<[^>]+(?:id|class)=\"livefyre", - "icon": "Livefyre.png", - "script": "livefyre_init\\.js", - "website": "http://livefyre.com" - }, - "Liveinternet": { - "cats": [ - "10" - ], - "html": [ - "]*>[^]{0,128}?src\\s*=\\s*['\"]//counter\\.yadro\\.ru/hit(?:;\\S+)?\\?(?:t\\d+\\.\\d+;)?r", - "", - "", - "]*/sites/[a-z\\d]{24}/theme/stylesheets", - "icon": "Locomotive.png", - "implies": [ - "Ruby on Rails", - "MongoDB" - ], - "website": "http://www.locomotivecms.com" - }, - "Logitech Media Server": { - "cats": [ - "22", - "38" - ], - "headers": { - "Server": "Logitech Media Server(?: \\(([\\d\\.]+))?\\;version:\\1" - }, - "icon": "Logitech Media Server.png", - "website": "http://www.mysqueezebox.com" - }, - "Lotus Domino": { - "cats": [ - "22" - ], - "headers": { - "Server": "Lotus-Domino" - }, - "icon": "Lotus Domino.png", - "implies": "Java", - "website": "http://www-01.ibm.com/software/lotus/products/domino" - }, - "Lua": { - "cats": [ - "27" - ], - "headers": { - "X-Powered-By": "\bLua(?: ([\\d.]+))?\\;version:\\1" - }, - "icon": "Lua.png", - "website": "http://www.lua.org" - }, - "Lucene": { - "cats": [ - "34" - ], - "icon": "Lucene.png", - "implies": "Java", - "website": "http://lucene.apache.org/core/" - }, - "Luigi’s Box": { - "cats": [ - "10", - "29" - ], - "env": "^Luigis$", - "icon": "Luigisbox.svg", - "website": "https://www.luigisbox.com" - }, - "M.R. Inc BoxyOS": { - "cats": [ - "28" - ], - "icon": "M.R. Inc.png", - "website": "http://mrincworld.com" - }, - "M.R. Inc SiteFrame": { - "cats": [ - "18" - ], - "headers": { - "Powered-By": "M\\.R\\. Inc SiteFrame" - }, - "icon": "M.R. Inc.png", - "website": "http://mrincworld.com" - }, - "M.R. Inc Webserver": { - "cats": [ - "22" - ], - "headers": { - "Server": "M\\.R\\. Inc Webserver" - }, - "icon": "M.R. Inc.png", - "implies": [ - "M.R. Inc BoxyOS" - ], - "website": "http://mrincworld.com" - }, - "MHonArc": { - "cats": [ - "50" - ], - "html": "\\;version:\\1", - "icon": "mhonarc.png", - "website": "http://www.mhonarc.at" - }, - "MOBOTIX": { - "cats": [ - "39" - ], - "icon": "MOBOTIX.png", - "meta": { - "author": "MOBOTIX AG\\;confidence:40", - "copyright": "MOBOTIX AG\\;confidence:40", - "publisher": "MOBOTIX AG\\;confidence:40" - }, - "url": "control/userimage\\.html\\;confidence:70", - "website": "http://mobotix.com" - }, - "MODX": { - "cats": [ - "1" - ], - "env": "^MODX_MEDIA_PATH$", - "headers": { - "Set-Cookie": "SN5[a-f\\d]{12}", - "X-Powered-By": "^MODX" - }, - "html": [ - "]+>Powered by MODX", - "<(?:link|script)[^>]+assets/snippets/\\;confidence:20", - "]+id=\"ajaxSearch_form\\;confidence:20", - "]+id=\"ajaxSearch_input\\;confidence:20" - ], - "icon": "MODX.png", - "implies": "PHP", - "meta": { - "generator": "MODX[^\\d.]*([\\d.]+)?\\;version:\\1" - }, - "website": "http://modx.com" - }, - "MadAdsMedia": { - "cats": [ - "36" - ], - "env": "^setM(?:Iframe|RefURL)$", - "icon": "MadAdsMedia.png", - "script": "^https?://(?:ads-by|pixel)\\.madadsmedia\\.com/", - "website": "http://madadsmedia.com" - }, - "Magento": { - "cats": [ - "6" - ], - "env": [ - "^(?:Mage|VarienForm)$" - ], - "headers": { - "Set-Cookie": "frontend=\\;confidence:50" - }, - "html": [ - "", - "icon": "Arc Forum.png", - "website": "http://arclanguage.org" - }, - "ArcGIS API for JavaScript": { - "cats": [ - "35" - ], - "script": [ - "js\\.arcgis\\.com", - "basemaps\\.arcgis\\.com" - ], - "icon": "arcgis_icon.png", - "website": "https://developers.arcgis.com/javascript/" - }, - "Artifactory": { - "cats": [ - "47" - ], - "env": "^ArtifactoryUpdates$", - "html": [ - "Artifactory(?: Pro)?(?: Power Pack)?(?: ([\\d.]+))?\\;version:\\1" - ], - "icon": "Artifactory.svg", - "script": [ - "wicket/resource/org\\.artifactory\\." - ], - "website": "http://jfrog.com/open-source/#os-arti" - }, - "Artifactory Web Server": { - "cats": [ - "22" - ], - "headers": { - "Server": "Artifactory(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "Artifactory.svg", - "implies": [ - "Artifactory" - ], - "website": "http://jfrog.com/open-source/#os-arti" - }, - "ArvanCloud": { - "cats": [ - "31" - ], - "env": "^ArvanCloud$", - "headers": { - "AR-PoweredBy": "Arvan Cloud \\(arvancloud\\.com\\)" - }, - "icon": "ArvanCloud.png", - "website": "http://www.ArvanCloud.com" - }, - "AsciiDoc": { - "cats": [ - "1", - "20", - "27" - ], - "env": "^asciidoc$", - "icon": "AsciiDoc.png", - "meta": { - "generator": "^AsciiDoc ([\\d.]+)\\;version:\\1" - }, - "website": "http://www.methods.co.nz/asciidoc" - }, - "Asciinema": { - "cats": [ - "14" - ], - "env": "^asciinema$", - "script": "asciinema\\.org/", - "icon": "asciinema.png", - "html": "]+components/bitrix|(?:src|href)=\"/bitrix/(?:js|templates))", + "icon": "1C-Bitrix.png", + "implies": "PHP", + "script": "1c-bitrix", + "website": "http://www.1c-bitrix.ru" + }, + "2z Project": { + "cats": [ + "1" + ], + "icon": "2z Project.png", + "meta": { + "generator": "2z project ([\\d.]+)\\;version:\\1" + }, + "website": "http://2zproject-cms.ru" + }, + "3DM": { + "cats": [ + "19" + ], + "html": "3ware 3DM([\\d\\.]+)?\\;version:\\1", + "icon": "3DM.png", + "implies": "3ware", + "website": "http://www.3ware.com" + }, + "3dCart": { + "cats": [ + "1", + "6" + ], + "headers": { + "Set-Cookie": "3dvisit", + "X-Powered-By": "3DCART" + }, + "icon": "3dCart.png", + "script": "(?:twlh(?:track)?\\.asp|3d_upsell\\.js)", + "website": "http://www.3dcart.com" + }, + "3ware": { + "cats": [ + "22" + ], + "headers": { + "Server": "3ware\\/?([\\d\\.]+)?\\;version:\\1" + }, + "icon": "3ware.png", + "website": "http://www.3ware.com" + }, + "AD EBiS": { + "cats": [ + "10" + ], + "html": [ + "<!-- EBiS contents tag", + "<!--EBiS tag", + "<!-- Tag EBiS", + "<!-- EBiS common tag" + ], + "icon": "ebis.png", + "website": "http://www.ebis.ne.jp" + }, + "Amber": { + "cats": [ + "18", + "22" + ], + "headers": { + "X-Powered-By": "^Amber$" + }, + "icon": "amber.png", + "website": "https://amberframework.org" + }, + "AMPcms": { + "cats": [ + "1" + ], + "js": { + "amp_js_init": "" + }, + "headers": { + "Set-Cookie": "^AMP=", + "X-AMP-Version": "([\\d.]+)\\;version:\\1" + }, + "icon": "AMPcms.png", + "implies": "PHP", + "website": "http://www.ampcms.org" + }, + "AOLserver": { + "cats": [ + "22" + ], + "headers": { + "Server": "AOLserver/?([\\d.]+)?\\;version:\\1" + }, + "icon": "AOLserver.png", + "website": "http://aolserver.com" + }, + "AT Internet Analyzer": { + "cats": [ + "10" + ], + "js": { + "xtsite": "", + "ATInternet": "" + }, + "icon": "AT Internet.png", + "website": "http://atinternet.com/en" + }, + "AT Internet XiTi": { + "cats": [ + "10" + ], + "js": { + "Xt_": "" + }, + "icon": "AT Internet.png", + "script": "xiti\\.com/hit\\.xiti", + "website": "http://atinternet.com/en" + }, + "ATEN": { + "cats": [ + "22" + ], + "headers": { + "Server": "ATEN HTTP Server(?:\\(?V?([\\d\\.]+)\\)?)?\\;version:\\1" + }, + "icon": "ATEN.png", + "website": "http://www.aten.com" + }, + "AWStats": { + "cats": [ + "10" + ], + "icon": "AWStats.png", + "implies": "Perl", + "meta": { + "generator": "AWStats ([\\d.]+(?: \\(build [\\d.]+\\))?)\\;version:\\1" + }, + "website": "http://awstats.sourceforge.net" + }, + "Accessible Portal": { + "cats": [ + "1" + ], + "icon": "Accessible Portal.png", + "implies": "PHP", + "meta": { + "generator": "Accessible Portal" + }, + "website": "http://www.accessibleportal.com" + }, + "Act-On": { + "cats": [ + "32" + ], + "js": { + "ActOn": "" + }, + "icon": "ActOn.png", + "website": "http://act-on.com" + }, + "Prebid": { + "cats": [ + "36" + ], + "icon": "Prebid.png", + "js": { + "pbjs": "", + "PREBID_TIMEOUT": "" + }, + "script": [ + "/prebid\\.js", + "adnxs\\.com/[^\"]*(?:prebid|/pb\\.js)" + ], + "website": "http://prebid.org" + }, + "AdInfinity": { + "cats": [ + "36" + ], + "icon": "AdInfinity.png", + "script": "adinfinity\\.com\\.au", + "website": "http://adinfinity.com.au" + }, + "AdRiver": { + "cats": [ + "36" + ], + "js": { + "adriver": "" + }, + "html": "(?:<embed[^>]+(?:src=\"https?://mh\\d?\\.adriver\\.ru/|flashvars=\"[^\"]*(?:http:%3A//(?:ad|mh\\d?)\\.adriver\\.ru/|adriver_banner))|<(?:(?:iframe|img)[^>]+src|a[^>]+href)=\"https?://ad\\.adriver\\.ru/)", + "icon": "AdRiver.png", + "script": "(?:adriver\\.core\\.\\d\\.js|https?://(?:content|ad|masterh\\d)\\.adriver\\.ru/)", + "website": "http://adriver.ru" + }, + "AdRoll": { + "cats": [ + "36" + ], + "js": { + "adroll_": "" + }, + "icon": "AdRoll.svg", + "script": "(?:a|s)\\.adroll\\.com", + "website": "http://adroll.com" + }, + "Adcash": { + "cats": [ + "36" + ], + "js": { + "ac_bgclick_URL": "", + "ct_siteunder": "", + "ct_tag": "", + "ct_nSuUrl": "", + "ct_nOpp": "", + "SuLoaded": "", + "SuUrl": "" + }, + "icon": "Adcash.svg", + "script": "^[^\\/]*//(?:[^\\/]+\\.)?adcash\\.com/(?:script|ad)/", + "url": "^https?://(?:[^\\/]+\\.)?adcash\\.com/script/pop_", + "website": "http://adcash.com" + }, + "AddShoppers": { + "cats": [ + "5" + ], + "icon": "AddShoppers.png", + "script": "cdn\\.shop\\.pe/widget/", + "website": "http://www.addshoppers.com" + }, + "AddThis": { + "cats": [ + "5" + ], + "js": { + "addthis": "" + }, + "icon": "AddThis.svg", + "script": "addthis\\.com/js/", + "website": "http://www.addthis.com" + }, + "AddToAny": { + "cats": [ + "5" + ], + "js": { + "a2apage_init": "" + }, + "icon": "AddToAny.png", + "script": "addtoany\\.com/menu/page\\.js", + "website": "http://www.addtoany.com" + }, + "Adminer": { + "cats": [ + "3" + ], + "html": [ + "Adminer</a> <span class=\"version\">([\\d.]+)</span>\\;version:\\1", + "onclick=\"bodyClick\\(event\\);\" onload=\"verifyVersion\\('([\\d.]+)'\\);\">\\;version:\\1" + ], + "icon": "adminer.png", + "implies": "PHP", + "website": "http://www.adminer.org" + }, + "Adnegah": { + "cats": [ + "36" + ], + "headers": { + "X-Advertising-By": "adnegah\\.net" + }, + "html": "<iframe [^>]*src=\"[^\"]+adnegah\\.net", + "icon": "adnegah.png", + "script": "[^a-z]adnegah.*\\.js$", + "website": "https://Adnegah.net" + }, + "Adobe ColdFusion": { + "cats": [ + "18" + ], + "js": { + "_cfEmails": "" + }, + "headers": { + "Cookie": "CFTOKEN=" + }, + "html": "<!-- START headerTags\\.cfm", + "icon": "Adobe ColdFusion.svg", + "implies": "CFML", + "script": "/cfajax/", + "url": "\\.cfm(?:$|\\?)", + "website": "http://adobe.com/products/coldfusion-family.html" + }, + "Adobe Experience Manager": { + "cats": [ + "1" + ], + "html": [ + "<div class=\"[^\"]*parbase", + "<div[^>]+data-component-path=\"[^\"+]jcr:" + ], + "icon": "Adobe Experience Manager.svg", + "implies": "Java", + "script": "/etc/designs/", + "website": "http://www.adobe.com/au/marketing-cloud/enterprise-content-management.html" + }, + "Adobe GoLive": { + "cats": [ + "20" + ], + "icon": "Adobe GoLive.png", + "meta": { + "generator": "Adobe GoLive(?:\\s([\\d.]+))?\\;version:\\1" + }, + "website": "http://www.adobe.com/products/golive" + }, + "Adobe Muse": { + "cats": [ + "20" + ], + "icon": "Adobe Muse.svg", + "meta": { + "generator": "^Muse(?:$| ?/?(\\d[\\d.]+))\\;version:\\1" + }, + "website": "http://muse.adobe.com" + }, + "Adobe RoboHelp": { + "cats": [ + "4" + ], + "js": { + "gbWhVer": "", + "gbWhLang": "", + "gbWhMsg": "", + "gbWhUtil": "", + "gbWhProxy": "" + }, + "icon": "Adobe RoboHelp.svg", + "meta": { + "generator": "^Adobe RoboHelp(?: ([\\d]+))?\\;version:\\1" + }, + "script": "(?:wh(?:utils|ver|proxy|lang|topic|msg)|ehlpdhtm)\\.js", + "website": "http://adobe.com/products/robohelp.html" + }, + "Advanced Web Stats": { + "cats": [ + "10" + ], + "html": "aws\\.src = [^<]+caphyon-analytics", + "icon": "Advanced Web Stats.png", + "implies": "Java", + "website": "http://www.advancedwebstats.com" + }, + "Advert Stream": { + "cats": [ + "36" + ], + "js": { + "advst_is_above_the_fold": "" + }, + "icon": "Advert Stream.png", + "script": "(?:ad\\.advertstream\\.com|adxcore\\.com)", + "website": "http://www.advertstream.com" + }, + "Adzerk": { + "cats": [ + "36" + ], + "js": { + "ados": "", + "adosResults": "" + }, + "html": "<iframe [^>]*src=\"[^\"]+adzerk\\.net", + "icon": "Adzerk.png", + "script": "adzerk\\.net/ados\\.js", + "website": "http://adzerk.com" + }, + "Aegea": { + "cats": [ + "11" + ], + "headers": { + "X-Powered-By": "^E2 Aegea v(\\d+)$\\;version:\\1" + }, + "icon": "Aegea.png", + "implies": [ + "PHP", + "jQuery" + ], + "website": "http://blogengine.ru" + }, + "AfterBuy": { + "cats": [ + "6" + ], + "html": [ + "<dd>This OnlineStore is brought to you by ViA-Online GmbH Afterbuy\\. Information and contribution at https://www\\.afterbuy\\.de</dd>" + ], + "icon": "after-buy.png", + "script": "shop-static\\.afterbuy\\.de", + "website": "http://www.afterbuy.de" + }, + "Afosto": { + "cats": [ + "6" + ], + "headers": { + "X-Powered-By": "Afosto SaaS BV" + }, + "icon": "Afosto.svg", + "website": "http://afosto.com" + }, + "Aircall": { + "cats": [ + "52" + ], + "icon": "aircall.png", + "script": "^https?://cdn\\.aircall\\.io/", + "website": "http://aircall.io" + }, + "Airee": { + "cats": [ + "31" + ], + "headers": { + "Server": "Airee" + }, + "icon": "Airee.png", + "website": "http://xn--80aqc2a.xn--p1ai" + }, + "Akamai": { + "cats": [ + "31" + ], + "headers": { + "X-Akamai-Transformed": "" + }, + "icon": "akamai.svg", + "website": "http://akamai.com" + }, + "Akka HTTP": { + "cats": [ + "18", + "22" + ], + "headers": { + "Server": "akka-http(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "akka-http.png", + "website": "http://akka.io" + }, + "Algolia Realtime Search": { + "cats": [ + "29" + ], + "js": { + "AlgoliaSearch": "" + }, + "icon": "Algolia Realtime Search.svg", + "website": "http://www.algolia.com" + }, + "Allegro RomPager": { + "cats": [ + "22" + ], + "headers": { + "Server": "Allegro-Software-RomPager(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "Allegro RomPager.png", + "website": "http://allegrosoft.com/embedded-web-server-s2" + }, + "AlloyUI": { + "cats": [ + "12" + ], + "js": { + "AUI": "" + }, + "icon": "AlloyUI.png", + "implies": [ + "Bootstrap", + "YUI" + ], + "script": "^https?://cdn\\.alloyui\\.com/", + "website": "http://www.alloyui.com" + }, + "Amaya": { + "cats": [ + "20" + ], + "icon": "Amaya.png", + "meta": { + "generator": "Amaya(?: V?([\\d.]+[a-z]))?\\;version:\\1" + }, + "website": "http://www.w3.org/Amaya" + }, + "Amazon Cloudfront": { + "cats": [ + "31" + ], + "headers": { + "X-Amz-Cf-Id": "" + }, + "icon": "Amazon-Cloudfront.svg", + "website": "http://aws.amazon.com/cloudfront/" + }, + "Amazon EC2": { + "cats": [ + "22" + ], + "headers": { + "Server": "\\(Amazon\\)" + }, + "icon": "aws-ec2.svg", + "website": "http://aws.amazon.com/ec2/" + }, + "Amazon S3": { + "cats": [ + "19" + ], + "headers": { + "Server": "AmazonS3" + }, + "icon": "aws-s3.svg", + "website": "http://aws.amazon.com/s3/" + }, + "Ametys": { + "cats": [ + "1" + ], + "icon": "Ametys.png", + "implies": "Java", + "meta": { + "generator": "(?:Ametys|Anyware Technologies)" + }, + "script": "ametys\\.js", + "website": "http://ametys.org" + }, + "Amiro.CMS": { + "cats": [ + "1" + ], + "icon": "Amiro.CMS.png", + "implies": "PHP", + "meta": { + "generator": "Amiro" + }, + "website": "http://amirocms.com" + }, + "Angular Material": { + "cats": [ + "18" + ], + "js": { + "ngMaterial": "" + }, + "icon": "Angular.svg", + "implies": "AngularJS", + "script": [ + "/([\\d.]+(?:\\-?rc[.\\d]*)*)/angular-material(?:\\.min)?\\.js\\;version:\\1", + "angular-material.*\\.js" + ], + "website": "http://material.angularjs.org" + }, + "AngularJS": { + "cats": [ + "12" + ], + "js": { + "angular": "" + }, + "icon": "AngularJS.svg", + "script": [ + "angular(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", + "/([\\d.]+(?:\\-?rc[.\\d]*)*)/angular(?:\\.min)?\\.js\\;version:\\1", + "angular.*\\.js" + ], + "website": "http://angularjs.org" + }, + "Apache": { + "cats": [ + "22" + ], + "headers": { + "Server": "(?:Apache(?:$|/([\\d.]+)|[^/-])|(?:^|\b)HTTPD)\\;version:\\1" + }, + "icon": "Apache.svg", + "website": "http://apache.org" + }, + "Apache HBase": { + "cats": [ + "34" + ], + "html": "<style[^>]+static/hbase", + "icon": "Apache HBase.png", + "implies": "Java", + "website": "http://hbase.apache.org" + }, + "Apache Hadoop": { + "cats": [ + "34" + ], + "html": "<style[^>]+static/hadoop", + "icon": "Apache Hadoop.svg", + "website": "http://hadoop.apache.org" + }, + "Apache JSPWiki": { + "cats": [ + "8" + ], + "html": "<html[^>]* xmlns:jspwiki=", + "icon": "Apache JSPWiki.png", + "implies": "Apache Tomcat", + "script": "jspwiki", + "url": "wiki\\.jsp", + "website": "http://jspwiki.org" + }, + "Apache Tomcat": { + "cats": [ + "22" + ], + "headers": { + "Server": "^Apache-Coyote(/1\\.1)?$\\;version:\\1?4.1+:", + "X-Powered-By": "\bTomcat\b(?:-([\\d.]+))?\\;version:\\1" + }, + "icon": "Apache Tomcat.svg", + "implies": "Java", + "website": "http://tomcat.apache.org" + }, + "Apache Traffic Server": { + "cats": [ + "22" + ], + "headers": { + "Server": "ATS/?([\\d.]+)?\\;version:\\1" + }, + "icon": "Apache Traffic Server.png", + "website": "http://trafficserver.apache.org/" + }, + "Apache Wicket": { + "cats": [ + "18" + ], + "js": { + "Wicket": "" + }, + "icon": "Apache Wicket.svg", + "implies": "Java", + "website": "http://wicket.apache.org" + }, + "ApexPages": { + "cats": [ + "51" + ], + "headers": { + "X-Powered-By": "Salesforce\\.com ApexPages" + }, + "icon": "ApexPages.png", + "implies": "Salesforce", + "website": "https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_intro.htm" + }, + "Apostrophe CMS": { + "cats": [ + "1" + ], + "html": "<[^>]+data-apos-refreshable[^>]", + "icon": "apostrophecms.svg", + "implies": "Node.js", + "website": "http://apostrophecms.org" + }, + "AppNexus": { + "cats": [ + "36" + ], + "html": "<(?:iframe|img)[^>]+adnxs\\.(?:net|com)", + "icon": "AppNexus.svg", + "script": "adnxs\\.(?:net|com)", + "website": "http://appnexus.com" + }, + "Arastta": { + "cats": [ + "6" + ], + "excludes": "OpenCart", + "headers": { + "Arastta": "(.*)\\;version:\\1", + "X-Arastta": "" + }, + "html": "Powered by <a [^>]*href=\"https?://(?:www\\.)?arastta\\.org[^>]+>Arastta", + "icon": "Arastta.svg", + "implies": "PHP", + "script": "arastta\\.js", + "website": "http://arastta.org" + }, + "Arc Forum": { + "cats": [ + "2" + ], + "html": "ping\\.src = node\\.href;\\s+[^>]+\\s+}\\s+</script>", + "icon": "Arc Forum.png", + "website": "http://arclanguage.org" + }, + "ArcGIS API for JavaScript": { + "cats": [ + "35" + ], + "script": [ + "js\\.arcgis\\.com", + "basemaps\\.arcgis\\.com" + ], + "icon": "arcgis_icon.png", + "website": "https://developers.arcgis.com/javascript/" + }, + "Artifactory": { + "cats": [ + "47" + ], + "js": { + "ArtifactoryUpdates": "" + }, + "html": [ + "<span class=\"version\">Artifactory(?: Pro)?(?: Power Pack)?(?: ([\\d.]+))?\\;version:\\1" + ], + "icon": "Artifactory.svg", + "script": [ + "wicket/resource/org\\.artifactory\\." + ], + "website": "http://jfrog.com/open-source/#os-arti" + }, + "Artifactory Web Server": { + "cats": [ + "22" + ], + "headers": { + "Server": "Artifactory(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "Artifactory.svg", + "implies": [ + "Artifactory" + ], + "website": "http://jfrog.com/open-source/#os-arti" + }, + "ArvanCloud": { + "cats": [ + "31" + ], + "js": { + "ArvanCloud": "" + }, + "headers": { + "AR-PoweredBy": "Arvan Cloud \\(arvancloud\\.com\\)" + }, + "icon": "ArvanCloud.png", + "website": "http://www.ArvanCloud.com" + }, + "AsciiDoc": { + "cats": [ + "1", + "20", + "27" + ], + "js": { + "asciidoc": "" + }, + "icon": "AsciiDoc.png", + "meta": { + "generator": "^AsciiDoc ([\\d.]+)\\;version:\\1" + }, + "website": "http://www.methods.co.nz/asciidoc" + }, + "Asciinema": { + "cats": [ + "14" + ], + "js": { + "asciinema": "" + }, + "script": "asciinema\\.org/", + "icon": "asciinema.png", + "html": "<asciinema-player", + "website": "https://asciinema.org/" + }, + "Atlassian Bitbucket": { + "cats": [ + "47" + ], + "js": { + "bitbucket": "" + }, + "icon": "Atlassian Bitbucket.svg", + "implies": "Python", "html": "<li>Atlassian Bitbucket <span title=\"[a-z0-9]+\" id=\"product-version\" data-commitid=\"[a-z0-9]+\" data-system-build-number=\"[a-z0-9]+\"> v([\\d.]+)<\\;version:\\1", - "meta": { - "application-name": "Bitbucket" - }, - "website": "http://www.atlassian.com/software/bitbucket/overview/" - }, - "Atlassian Confluence": { - "cats": [ - "8" - ], - "headers": { - "X-Confluence-Request-Time": "" - }, - "html": "Powered by <a href=[^>]+atlassian\\.com/software/confluence(?:[^>]+>Atlassian Confluence</a> ([\\d.]+))?\\;version:\\1", - "icon": "Atlassian Confluence.svg", - "implies": "Java", - "meta": { - "confluence-request-time": "" - }, - "website": "http://www.atlassian.com/software/confluence/overview/team-collaboration-software" - }, - "Atlassian FishEye": { - "cats": [ - "47" - ], - "headers": { - "Set-cookie": "FESESSIONID" - }, - "html": "<title>(?:Log in to )?FishEye (?:and Crucible )?([\\d.]+)?\\;version:\\1", - "icon": "Atlassian FishEye.svg", - "website": "http://www.atlassian.com/software/fisheye/overview/" - }, - "Atlassian Jira": { - "cats": [ - "13" - ], - "env": "^jira$", - "html": "Powered by\\s+]+atlassian\\.com/(?:software/jira|jira-bug-tracking/)[^>]+>Atlassian\\s+JIRA(?:[^v]*v(?:ersion: )?(\\d+\\.\\d+(?:\\.\\d+)?))?\\;version:\\1", - "icon": "Atlassian Jira.svg", - "implies": "Java", - "meta": { - "ajs-version-number": "([\\d\\.]+)\\;version:\\1", - "application-name": "JIRA" - }, - "website": "http://www.atlassian.com/software/jira/overview/" - }, - "Atlassian Jira Issue Collector": { - "cats": [ - "13", - "47" - ], - "icon": "Atlassian Jira.svg", - "script": [ - "jira-issue-collector-plugin", - "atlassian\\.jira\\.collector\\.plugin" - ], - "website": "http://www.atlassian.com/software/jira/overview/" - }, - "Aurelia": { - "cats": [ - "12" - ], - "html": [ - "<[^>]+aurelia-app=[^>]", - "<[^>]+data-main=[^>]aurelia-bootstrapper", - "<[^>]+au-target-id=[^>]\\d" - ], - "icon": "Aurelia.svg", - "script": [ - "aurelia(?:\\.min)?\\.js" - ], - "website": "http://aurelia.io" - }, - "Avangate": { - "cats": [ - "6" - ], - "env": "^(?:__)?avng8_", - "html": "]* href=\"^https?://edge\\.avangate\\.net/", - "icon": "Avangate.svg", - "script": "^https?://edge\\.avangate\\.net/", - "website": "http://avangate.com" - }, - "BEM": { - "cats": [ - "12" - ], - "html": "<[^>]+data-bem", - "icon": "BEM.png", - "website": "http://en.bem.info" - }, - "BIGACE": { - "cats": [ - "1" - ], - "html": "(?:Powered by ]+BIGACE|", - "icon": "Business Catalyst.png", - "script": "CatalystScripts", - "website": "http://businesscatalyst.com" - }, - "BuySellAds": { - "cats": [ - "36" - ], - "env": "^_bsa", - "html": "]*>[^<]+?bsa\\.src\\s*=\\s*['\"](?:https?:)?\\/{2}\\w\\d\\.buysellads\\.com\\/[\\w\\d\\/]+?bsa\\.js['\"]", - "icon": "BuySellAds.png", - "script": "^https?://s\\d\\.buysellads\\.com/", - "website": "http://buysellads.com" - }, - "C++": { - "cats": [ - "27" - ], - "icon": "C++.png", - "website": "http://isocpp.org" - }, - "CFML": { - "cats": [ - "27" - ], - "icon": "CFML.png", - "website": "http://adobe.com/products/coldfusion-family.html" - }, - "CKEditor": { - "cats": [ - "24" - ], - "env": "^CKEDITOR$", - "icon": "CKEditor.png", - "website": "http://ckeditor.com" - }, - "CMS Made Simple": { - "cats": [ - "1" - ], - "headers": { - "Set-Cookie": "^CMSSESSID" - }, - "icon": "CMS Made Simple.png", - "implies": "PHP", - "meta": { - "generator": "CMS Made Simple" - }, - "website": "http://cmsmadesimple.org" - }, - "CMSimple": { - "cats": [ - "1" - ], - "implies": "PHP", - "meta": { - "generator": "CMSimple( [\\d.]+)?\\;version:\\1" - }, - "website": "http://www.cmsimple.org/en" - }, - "CO2Stats": { - "cats": [ - "10" - ], - "html": "src=[^>]+co2stats\\.com/propres\\.php", - "icon": "CO2Stats.png", - "website": "http://co2stats.com" - }, - "CPG Dragonfly": { - "cats": [ - "1" - ], - "headers": { - "X-Powered-By": "^Dragonfly CMS" - }, - "icon": "CPG Dragonfly.png", - "implies": "PHP", - "meta": { - "generator": "CPG Dragonfly" - }, - "website": "http://dragonflycms.org" - }, - "CS Cart": { - "cats": [ - "6" - ], - "env": "^fn_compare_strings$", - "html": [ - " Powered by (?:]+cs-cart\\.com|CS-Cart)", - "\\.cm-noscript[^>]+" - ], - "icon": "CS Cart.png", - "implies": "PHP", - "website": "http://www.cs-cart.com" - }, - "CacheFly": { - "cats": [ - "31" - ], - "headers": { - "Server": "^CFS ", - "X-CF1": "", - "X-CF2": "" - }, - "icon": "CacheFly.png", - "website": "http://www.cachefly.com" - }, - "Caddy": { - "cats": [ - "22" - ], - "headers": { - "Server": "^Caddy$" - }, - "icon": "caddy.svg", - "implies": "Go", - "website": "http://caddyserver.com" - }, - "CakePHP": { - "cats": [ - "18" - ], - "headers": { - "Set-Cookie": "cakephp=" - }, - "icon": "CakePHP.png", - "implies": "PHP", - "meta": { - "application-name": "CakePHP" - }, - "website": "http://cakephp.org" - }, - "Canon": { - "cats": [ - "40" - ], - "icon": "Canon.png", - "website": "http://www.canon.com" - }, - "Canon HTTP Server": { - "cats": [ - "22" - ], - "headers": { - "Server": "CANON HTTP Server(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "Canon.png", - "implies": "Canon", - "website": "http://www.canon.com" - }, - "Captch Me": { - "cats": [ - "16", - "36" - ], - "env": "^Captchme", - "icon": "Captch Me.svg", - "script": "^https?://api\\.captchme\\.net/", - "website": "http://captchme.com" - }, - "Carbon Ads": { - "cats": [ - "36" - ], - "env": "^_carbonads", - "html": "<[a-z]+ [^>]*id=\"carbonads-container\"", - "icon": "Carbon Ads.png", - "script": "[^\\/]*\\/\\/(?:engine|srv)\\.carbonads\\.com\\/", - "website": "http://carbonads.net" - }, - "Cargo": { - "cats": [ - "1" - ], - "html": "]+Cargo feed", - "icon": "Cargo.png", - "implies": "PHP", - "meta": { - "cargo_title": "" - }, - "script": "/cargo\\.", - "website": "http://cargocollective.com" - }, - "Catberry.js": { - "cats": [ - "12", - "18" - ], - "env": "^catberry$", - "headers": { - "X-Powered-By": "Catberry" - }, - "icon": "Catberry.js.png", - "implies": "Node.js", - "website": "http://catberry.org" - }, - "Catwalk": { - "cats": [ - "22" - ], - "headers": { - "Server": "Catwalk\\/?([\\d\\.]+)?\\;version:\\1" - }, - "icon": "Catwalk.png", - "implies": "Canon", - "website": "http://www.canon.com" - }, - "CentOS": { - "cats": [ - "28" - ], - "headers": { - "Server": "CentOS", - "X-Powered-By": "CentOS" - }, - "icon": "CentOS.png", - "website": "http://centos.org" - }, - "CenteHTTPd": { - "cats": [ - "22" - ], - "headers": { - "Server": "CenteHTTPd(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "CenteHTTPd.png", - "website": "http://cente.jp/cente/app/HTTPdc.html" - }, - "Chameleon": { - "cats": [ - "1" - ], - "icon": "Chameleon.png", - "implies": [ - "Apache", - "PHP" - ], - "meta": { - "generator": "chameleon-cms" - }, - "website": "http://chameleon-system.de" - }, - "Chamilo": { - "cats": [ - "21" - ], - "headers": { - "X-Powered-By": "Chamilo ([\\d.]+)\\;version:\\1" - }, - "html": "\">Chamilo ([\\d.]+)\\;version:\\1", - "icon": "Chamilo.png", - "implies": "PHP", - "meta": { - "generator": "Chamilo ([\\d.]+)\\;version:\\1" - }, - "website": "http://www.chamilo.org" - }, - "Chart.js": { - "cats": [ - "25" - ], - "env": "^Chart$\\;confidence:50", - "icon": "Chart.js.svg", - "script": [ - "Chart(?:\\.bundle)?(?:\\.min)?\\.js\\;confidence:50", - "chartjs\\.org/dist/([\\d.]+(?:-[^/]+)?|master|latest)/Chart.*\\.js\\;version:\\1", - "cdnjs\\.cloudflare\\.com/ajax/libs/Chart\\.js/([\\d.]+(?:-[^/]+)?)/Chart.*\\.js\\;version:\\1", - "cdn\\.jsdelivr\\.net/npm/chart\\.js@([\\d.]+(?:-[^/]+)?|latest)/dist/Chart.*\\.js\\;version:\\1", - "cdn\\.jsdelivr\\.net/gh/chartjs/Chart\\.js@([\\d.]+(?:-[^/]+)?|latest)/dist/Chart.*\\.js\\;version:\\1" - ], - "website": "http://www.chartjs.org" - }, - "Chartbeat": { - "cats": [ - "10" - ], - "env": "^_sf_(?:endpt|async_config)$", - "icon": "Chartbeat.png", - "script": "chartbeat\\.js", - "website": "http://chartbeat.com" - }, - "Cherokee": { - "cats": [ - "22" - ], - "headers": { - "Server": "Cherokee(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "Cherokee.png", - "website": "http://www.cherokee-project.com" - }, - "CherryPy": { - "cats": [ - "18", - "22" - ], - "headers": { - "Server": "CherryPy\\/?([\\d\\.]+)?\\;version:\\1" - }, - "icon": "CherryPy.png", - "implies": "Python", - "website": "http://www.cherrypy.org" - }, - "Chitika": { - "cats": [ - "36" - ], - "env": "ch_c(?:lient|olor_site_link)", - "icon": "Chitika.png", - "script": "scripts\\.chitika\\.net/", - "website": "http://chitika.com" - }, - "Ckan": { - "cats": [ - "1" - ], - "headers": { - "Access-Control-Allow-Headers": "X-CKAN-API-KEY", - "Link": "; rel=shortlink" - }, - "icon": "Ckan.png", - "implies": [ - "Python", - "Solr", - "Java", - "PostgreSQL" - ], - "meta": { - "generator": ".*ckan.*" - }, - "website": "http://ckan.org/" - }, - "ClickHeat": { - "cats": [ - "10" - ], - "env": "^clickHeat", - "icon": "ClickHeat.png", - "implies": "PHP", - "script": "clickheat.*\\.js", - "website": "http://www.labsmedia.com/clickheat/index.html" - }, - "ClickTale": { - "cats": [ - "10" - ], - "env": "^ClickTale", - "icon": "ClickTale.png", - "website": "http://www.clicktale.com" - }, - "Clicky": { - "cats": [ - "10" - ], - "env": "^clicky$", - "icon": "Clicky.png", - "script": "static\\.getclicky\\.com", - "website": "http://getclicky.com" - }, - "Clientexec": { - "cats": [ - "6" - ], - "html": "clientexec\\.[^>]*\\s?=\\s?[^>]*;", - "icon": "Clientexec.png", - "website": "http://www.clientexec.com" - }, - "Clipboard.js": { - "cats": [ - "19" - ], - "env": "^Clipboard$", - "icon": "Clipboard.js.svg", - "script": "clipboard(?:\\.min)?\\.js", - "website": "https://clipboardjs.com/" - }, - "CloudCart": { - "cats": [ - "6" - ], - "icon": "cloudcart.svg", - "meta": { - "author": "^CloudCart LLC$" - }, - "script": "/cloudcart-(?:assets|storage)/", - "website": "http://cloudcart.com" - }, - "CloudFlare": { - "cats": [ - "31" - ], - "env": "^CloudFlare$", - "headers": { - "Server": "cloudflare" - }, - "icon": "CloudFlare.svg", - "website": "http://www.cloudflare.com" - }, - "Cloudera": { - "cats": [ - "34" - ], - "headers": { - "Server": "cloudera" - }, - "icon": "Cloudera.png", - "website": "http://www.cloudera.com" - }, - "CodeIgniter": { - "cats": [ - "18" - ], - "headers": { - "Set-Cookie": "(?:exp_last_activity|exp_tracker|ci_(?:session|(csrf_token)))\\;version:\\1?2+:" - }, - "html": "]+name=\"ci_csrf_token\"\\;version:2+", - "icon": "CodeIgniter.png", - "implies": "PHP", - "website": "http://codeigniter.com" - }, - "CodeMirror": { - "cats": [ - "19" - ], - "env": "^CodeMirror$", - "icon": "CodeMirror.png", - "website": "http://codemirror.net" - }, - "CoinHive": { - "cats": [ - "56" - ], - "env": "^CoinHive$", - "script": "\\/(?:coinhive|(authedmine))(?:\\.min)?\\.js\\;version:\\1?opt-in:", - "url": "https?://cnhv\\.co/", - "icon": "CoinHive.svg", - "website": "https://coinhive.com" - }, - "CoinHive Captcha": { - "cats": [ - "16", - "56" - ], - "html": "(?:]+class=\"coinhive-captcha[^>]+data-key|]+data-key[^>]+class=\"coinhive-captcha)", - "script": "https?://authedmine\\.com/(?:lib/captcha|captcha)", - "icon": "CoinHive.svg", - "website": "https://coinhive.com" - }, - "Comandia": { - "cats": [ - "6" - ], - "env": "^Comandia$", - "html": "]+=['\"]//cdn\\.mycomandia\\.com", - "icon": "Comandia.svg", - "website": "http://comandia.com" - }, - "Commerce Server": { - "cats": [ - "6" - ], - "headers": { - "COMMERCE-SERVER-SOFTWARE": "" - }, - "icon": "Commerce Server.png", - "implies": "Microsoft ASP.NET", - "website": "http://commerceserver.net" - }, - "CompaqHTTPServer": { - "cats": [ - "22" - ], - "headers": { - "Server": "CompaqHTTPServer\\/?([\\d\\.]+)?\\;version:\\1" - }, - "icon": "HP.svg", - "website": "http://www.hp.com" - }, - "Concrete5": { - "cats": [ - "1" - ], - "env": "^CCM_IMAGE_PATH$", - "icon": "Concrete5.png", - "implies": "PHP", - "meta": { - "generator": "concrete5 - ([\\d.ab]+)\\;version:\\1" - }, - "script": "concrete/js/", - "website": "http://concrete5.org" - }, - "Connect": { - "cats": [ - "18" - ], - "headers": { - "X-Powered-By": "^Connect$" - }, - "icon": "Connect.png", - "implies": "Node.js", - "website": "http://www.senchalabs.org/connect" - }, - "Contao": { - "cats": [ - "1" - ], - "html": [ - "", - "]+(?:typolight|contao)\\.css" - ], - "icon": "Contao.png", - "implies": "PHP", - "meta": { - "generator": "^Contao Open Source CMS$" - }, - "website": "http://contao.org" - }, - "Contenido": { - "cats": [ - "1" - ], - "icon": "Contenido.png", - "implies": "PHP", - "meta": { - "generator": "Contenido ([\\d.]+)\\;version:\\1" - }, - "website": "http://contenido.org/en" - }, - "Contens": { - "cats": [ - "1" - ], - "icon": "Contens.png", - "implies": [ - "Java", - "CFML" - ], - "meta": { - "generator": "Contensis CMS Version ([\\d.]+)\\;version:\\1" - }, - "website": "http://www.contens.com/en/pub/index.cfm" - }, - "ContentBox": { - "cats": [ - "1", - "11" - ], - "icon": "ContentBox.png", - "implies": "Adobe ColdFusion", - "meta": { - "generator": "ContentBox powered by ColdBox" - }, - "website": "http://www.gocontentbox.org" - }, - "Contentful": { - "cats": [ - "1" - ], - "html": "<[^>]+(?:https?:)?//(?:assets|downloads|images|videos)\\.contentful\\.com", - "icon": "Contentful.svg", - "website": "http://www.contentful.com" - }, - "ConversionLab": { - "cats": [ - "10" - ], - "icon": "ConversionLab.png", - "script": "conversionlab\\.trackset\\.com/track/tsend\\.js", - "website": "http://www.trackset.it/conversionlab" - }, - "Coppermine": { - "cats": [ - "7" - ], - "html": "|", - "icon": "InProces.png", - "script": "brein/inproces/website/websitefuncties\\.js", - "website": "http://www.brein.nl/oplossing/product/website" - }, - "Incapsula": { - "cats": [ - "31" - ], - "headers": { - "X-CDN": "Incapsula" - }, - "icon": "Incapsula.png", - "website": "http://www.incapsula.com" - }, - "Indexhibit": { - "cats": [ - "1" - ], - "html": "<(?:link|a href) [^>]+ndxz-studio", - "implies": [ - "PHP", - "Apache", - "Exhibit" - ], - "meta": { - "generator": "Indexhibit" - }, - "website": "http://www.indexhibit.org" - }, - "Indico": { - "cats": [ - "1" - ], - "headers": { - "Set-cookie": "MAKACSESSION" - }, - "html": "Powered by\\s+(?:CERN )?(?:CDS )?Indico( [\\d\\.]+)?\\;version:\\1", - "icon": "Indico.png", - "website": "http://indico-software.org" - }, - "Indy": { - "cats": [ - "22" - ], - "headers": { - "Server": "Indy(?:/([\\d.]+))?\\;version:\\1" - }, - "website": "http://indyproject.org" - }, - "InfernoJS": { - "cats": [ - "12" - ], - "env": "^Inferno$", - "icon": "InfernoJS.png", - "website": "https://infernojs.org/" - }, - "Infusionsoft": { - "cats": [ - "32" - ], - "html": [ - "]*name=\"infusionsoft_version\" [^>]*value=\"([^>]*)\" [^>]*\\/>\\;version:\\1", - "]*value=\"([^>]*)\" [^>]*name=\"infusionsoft_version\" [^>]*\\/>\\;version:\\1" - ], - "icon": "infusionsoft.svg", - "website": "http://infusionsoft.com" - }, - "InstantCMS": { - "cats": [ - "1" - ], - "headers": { - "Set-Cookie": "InstantCMS\\[logdate\\]=" - }, - "icon": "InstantCMS.png", - "implies": "PHP", - "meta": { - "generator": "InstantCMS" - }, - "website": "http://www.instantcms.ru" - }, - "Intel Active Management Technology": { - "cats": [ - "22", - "46" - ], - "headers": { - "Server": "Intel\\(R\\) Active Management Technology(?: ([\\d.]+))?\\;version:\\1" - }, - "icon": "Intel Active Management Technology.png", - "website": "http://intel.com" - }, - "IntenseDebate": { - "cats": [ - "15" - ], - "icon": "IntenseDebate.png", - "script": "intensedebate\\.com", - "website": "http://intensedebate.com" - }, - "Intercom": { - "cats": [ - "10" - ], - "env": "^Intercom$", - "icon": "Intercom.png", - "script": "(?:api\\.intercom\\.io/api|static\\.intercomcdn\\.com/intercom\\.v1)", - "website": "http://intercom.io" - }, - "Intershop": { - "cats": [ - "6" - ], - "icon": "Intershop.png", - "script": "(?:is-bin|INTERSHOP)", - "website": "http://intershop.com" - }, - "Invenio": { - "cats": [ - "50" - ], - "headers": { - "Set-cookie": "INVENIOSESSION" - }, - "html": "(?:Powered by|System)\\s+(?:CERN )?(?:CDS )?Invenio\\s*v?([\\d\\.]+)?\\;version:\\1", - "icon": "Invenio.png", - "website": "http://invenio-software.org" - }, - "Ionicons": { - "cats": [ - "17" - ], - "html": "]* href=[^>]+ionicons(?:\\.min)?\\.css", - "icon": "Ionicons.png", - "website": "http://ionicons.com" - }, - "JAlbum": { - "cats": [ - "7" - ], - "icon": "JAlbum.png", - "implies": "Java", - "meta": { - "generator": "JAlbum( [\\d.]+)?\\;version:\\1" - }, - "website": "http://jalbum.net/en" - }, - "JBoss Application Server": { - "cats": [ - "22" - ], - "headers": { - "X-Powered-By": "JBoss(?:-([\\d.]+))?\\;version:\\1" - }, - "icon": "JBoss Application Server.png", - "website": "http://jboss.org/jbossas.html" - }, - "JBoss Web": { - "cats": [ - "22" - ], - "excludes": "Apache Tomcat", - "headers": { - "X-Powered-By": "JBossWeb(?:-([\\d.]+))?\\;version:\\1" - }, - "icon": "JBoss Web.png", - "implies": "JBoss Application Server", - "website": "http://jboss.org/jbossweb" - }, - "JC-HTTPD": { - "cats": [ - "22" - ], - "excludes": "Apache", - "headers": { - "Server": "JC-HTTPD(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "JC-HTTPD.png", - "implies": "Canon", - "website": "http://canon.com" - }, - "JET Enterprise": { - "cats": [ - "6" - ], - "headers": { - "powered": "jet-enterprise" - }, - "icon": "JET Enterprise.svg", - "website": "http://www.jetecommerce.com.br/" - }, - "JS Charts": { - "cats": [ - "25" - ], - "env": "^JSChart$", - "icon": "JS Charts.png", - "script": "jscharts.*\\.js", - "website": "http://www.jscharts.com" - }, - "JTL Shop": { - "cats": [ - "6" - ], - "headers": { - "Set-Cookie": "JTLSHOP=" - }, - "html": "(?:]+name=\"JTLSHOP|]*>Jekyll]+id=\"wrapper_r\"|<[^>]+(?:feed|components)/com_|]+class=\"pill)\\;confidence:50", - "icon": "Joomla.svg", - "implies": "PHP", - "meta": { - "generator": "Joomla!(?: ([\\d.]+))?\\;version:\\1" - }, - "url": "option=com_", - "website": "http://joomla.org" - }, - "JSEcoin": { - "cats": [ - "56" - ], - "env": "^jseMine$", - "script": "^(?:https):?//load\\.jsecoin\\.com/server/load/", - "icon": "JSEcoin.png", - "website": "https://jsecoin.com/" - }, - "K2": { - "cats": [ - "19" - ], - "env": "^K2RatingURL$", - "html": "", - "icon": "Lightspeed.svg", - "script": "http://assets\\.webshopapp\\.com", - "url": "seoshop.webshopapp.com", - "website": "http://www.lightspeedhq.com/products/ecommerce/" - }, - "Lighty": { - "cats": [ - "18" - ], - "headers": { - "Set-Cookie": "lighty_version" - }, - "icon": "Lighty.png", - "implies": "PHP", - "website": "http://gitlab.com/lighty/framework" - }, - "LimeSurvey": { - "cats": [ - "19" - ], - "headers": { - "generator": "LimeSurvey" - }, - "icon": "LimeSurvey.png", - "website": "http://limesurvey.org/" - }, - "LinkSmart": { - "cats": [ - "36" - ], - "env": "^(?:_mb_site_guid$|LS_JSON|LinkSmart(?:_|$))", - "icon": "LinkSmart.png", - "script": "^https?://cdn\\.linksmart\\.com/linksmart_([\\d.]+?)(?:\\.min)?\\.js\\;version:\\1", - "website": "http://linksmart.com" - }, - "Linkedin": { - "cats": [ - "5" - ], - "icon": "Linkedin.svg", - "script": "//platform\\.linkedin\\.com/in\\.js", - "website": "http://linkedin.com" - }, - "List.js": { - "cats": [ - "12" - ], - "env": "^List$", - "icon": "List.js.png", - "script": "^list\\.(?:min\\.)?js$", - "website": "http://www.listjs.com" - }, - "LiteSpeed": { - "cats": [ - "22" - ], - "headers": { - "Server": "^LiteSpeed$" - }, - "icon": "LiteSpeed.svg", - "website": "http://litespeedtech.com" - }, - "Lithium": { - "cats": [ - "1" - ], - "env": [ - "^LITHIUM$" - ], - "headers": { - "Set-Cookie": "LithiumVisitor=" - }, - "html": " ]+Powered by Lithium", - "icon": "Lithium.png", - "implies": "PHP", - "website": "http://www.lithium.com" - }, - "LiveAgent": { - "cats": [ - "52" - ], - "env": "^LiveAgent$", - "icon": "LiveAgent.png", - "website": "http://www.ladesk.com" - }, - "LiveChat": { - "cats": [ - "52" - ], - "icon": "LiveChat.png", - "script": "cdn\\.livechatinc\\.com/.*tracking\\.js", - "website": "http://livechatinc.com" - }, - "LiveJournal": { - "cats": [ - "11" - ], - "icon": "LiveJournal.png", - "url": "\\.livejournal\\.com", - "website": "http://www.livejournal.com" - }, - "LivePerson": { - "cats": [ - "52" - ], - "icon": "LivePerson.png", - "script": "^https?://lptag\\.liveperson\\.net/tag/tag\\.js", - "website": "https://www.liveperson.com/" - }, - "LiveStreet CMS": { - "cats": [ - "1" - ], - "env": "^LIVESTREET", - "headers": { - "X-Powered-By": "LiveStreet CMS" - }, - "icon": "LiveStreet CMS.png", - "implies": "PHP", - "website": "http://livestreetcms.com" - }, - "Livefyre": { - "cats": [ - "15" - ], - "env": [ - "^fyre$", - "^FyreLoader$" - ], - "html": "<[^>]+(?:id|class)=\"livefyre", - "icon": "Livefyre.png", - "script": "livefyre_init\\.js", - "website": "http://livefyre.com" - }, - "Liveinternet": { - "cats": [ - "10" - ], - "html": [ - "]*>[^]{0,128}?src\\s*=\\s*['\"]//counter\\.yadro\\.ru/hit(?:;\\S+)?\\?(?:t\\d+\\.\\d+;)?r", - "", - "", - "]*/sites/[a-z\\d]{24}/theme/stylesheets", - "icon": "Locomotive.png", - "implies": [ - "Ruby on Rails", - "MongoDB" - ], - "website": "http://www.locomotivecms.com" - }, - "Logitech Media Server": { - "cats": [ - "22", - "38" - ], - "headers": { - "Server": "Logitech Media Server(?: \\(([\\d\\.]+))?\\;version:\\1" - }, - "icon": "Logitech Media Server.png", - "website": "http://www.mysqueezebox.com" - }, - "Lotus Domino": { - "cats": [ - "22" - ], - "headers": { - "Server": "Lotus-Domino" - }, - "icon": "Lotus Domino.png", - "implies": "Java", - "website": "http://www-01.ibm.com/software/lotus/products/domino" - }, - "Lua": { - "cats": [ - "27" - ], - "headers": { - "X-Powered-By": "\bLua(?: ([\\d.]+))?\\;version:\\1" - }, - "icon": "Lua.png", - "website": "http://www.lua.org" - }, - "Lucene": { - "cats": [ - "34" - ], - "icon": "Lucene.png", - "implies": "Java", - "website": "http://lucene.apache.org/core/" - }, - "Luigi’s Box": { - "cats": [ - "10", - "29" - ], - "env": "^Luigis$", - "icon": "Luigisbox.svg", - "website": "https://www.luigisbox.com" - }, - "M.R. Inc BoxyOS": { - "cats": [ - "28" - ], - "icon": "M.R. Inc.png", - "website": "http://mrincworld.com" - }, - "M.R. Inc SiteFrame": { - "cats": [ - "18" - ], - "headers": { - "Powered-By": "M\\.R\\. Inc SiteFrame" - }, - "icon": "M.R. Inc.png", - "website": "http://mrincworld.com" - }, - "M.R. Inc Webserver": { - "cats": [ - "22" - ], - "headers": { - "Server": "M\\.R\\. Inc Webserver" - }, - "icon": "M.R. Inc.png", - "implies": [ - "M.R. Inc BoxyOS" - ], - "website": "http://mrincworld.com" - }, - "MHonArc": { - "cats": [ - "50" - ], - "html": "\\;version:\\1", - "icon": "mhonarc.png", - "website": "http://www.mhonarc.at" - }, - "MOBOTIX": { - "cats": [ - "39" - ], - "icon": "MOBOTIX.png", - "meta": { - "author": "MOBOTIX AG\\;confidence:40", - "copyright": "MOBOTIX AG\\;confidence:40", - "publisher": "MOBOTIX AG\\;confidence:40" - }, - "url": "control/userimage\\.html\\;confidence:70", - "website": "http://mobotix.com" - }, - "MODX": { - "cats": [ - "1" - ], - "env": "^MODX_MEDIA_PATH$", - "headers": { - "Set-Cookie": "SN5[a-f\\d]{12}", - "X-Powered-By": "^MODX" - }, - "html": [ - "]+>Powered by MODX", - "<(?:link|script)[^>]+assets/snippets/\\;confidence:20", - "]+id=\"ajaxSearch_form\\;confidence:20", - "]+id=\"ajaxSearch_input\\;confidence:20" - ], - "icon": "MODX.png", - "implies": "PHP", - "meta": { - "generator": "MODX[^\\d.]*([\\d.]+)?\\;version:\\1" - }, - "website": "http://modx.com" - }, - "MadAdsMedia": { - "cats": [ - "36" - ], - "env": "^setM(?:Iframe|RefURL)$", - "icon": "MadAdsMedia.png", - "script": "^https?://(?:ads-by|pixel)\\.madadsmedia\\.com/", - "website": "http://madadsmedia.com" - }, - "Magento": { - "cats": [ - "6" - ], - "env": [ - "^(?:Mage|VarienForm)$" - ], - "headers": { - "Set-Cookie": "frontend=\\;confidence:50" - }, - "html": [ - "", - "icon": "Arc Forum.png", - "website": "http://arclanguage.org" - }, - "ArcGIS API for JavaScript": { - "cats": [ - "35" - ], - "script": [ - "js\\.arcgis\\.com", - "basemaps\\.arcgis\\.com" - ], - "icon": "arcgis_icon.png", - "website": "https://developers.arcgis.com/javascript/" - }, - "Artifactory": { - "cats": [ - "47" - ], - "env": "^ArtifactoryUpdates$", - "html": [ - "Artifactory(?: Pro)?(?: Power Pack)?(?: ([\\d.]+))?\\;version:\\1" - ], - "icon": "Artifactory.svg", - "script": [ - "wicket/resource/org\\.artifactory\\." - ], - "website": "http://jfrog.com/open-source/#os-arti" - }, - "Artifactory Web Server": { - "cats": [ - "22" - ], - "headers": { - "Server": "Artifactory(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "Artifactory.svg", - "implies": [ - "Artifactory" - ], - "website": "http://jfrog.com/open-source/#os-arti" - }, - "ArvanCloud": { - "cats": [ - "31" - ], - "env": "^ArvanCloud$", - "headers": { - "AR-PoweredBy": "Arvan Cloud \\(arvancloud\\.com\\)" - }, - "icon": "ArvanCloud.png", - "website": "http://www.ArvanCloud.com" - }, - "AsciiDoc": { - "cats": [ - "1", - "20", - "27" - ], - "env": "^asciidoc$", - "icon": "AsciiDoc.png", - "meta": { - "generator": "^AsciiDoc ([\\d.]+)\\;version:\\1" - }, - "website": "http://www.methods.co.nz/asciidoc" - }, - "Asciinema": { - "cats": [ - "14" - ], - "env": "^asciinema$", - "script": "asciinema\\.org/", - "icon": "asciinema.png", - "html": "]+components/bitrix|(?:src|href)=\"/bitrix/(?:js|templates))", + "icon": "1C-Bitrix.png", + "implies": "PHP", + "script": "1c-bitrix", + "website": "http://www.1c-bitrix.ru" + }, + "2z Project": { + "cats": [ + "1" + ], + "icon": "2z Project.png", + "meta": { + "generator": "2z project ([\\d.]+)\\;version:\\1" + }, + "website": "http://2zproject-cms.ru" + }, + "3DM": { + "cats": [ + "19" + ], + "html": "3ware 3DM([\\d\\.]+)?\\;version:\\1", + "icon": "3DM.png", + "implies": "3ware", + "website": "http://www.3ware.com" + }, + "3dCart": { + "cats": [ + "1", + "6" + ], + "headers": { + "Set-Cookie": "3dvisit", + "X-Powered-By": "3DCART" + }, + "icon": "3dCart.png", + "script": "(?:twlh(?:track)?\\.asp|3d_upsell\\.js)", + "website": "http://www.3dcart.com" + }, + "3ware": { + "cats": [ + "22" + ], + "headers": { + "Server": "3ware\\/?([\\d\\.]+)?\\;version:\\1" + }, + "icon": "3ware.png", + "website": "http://www.3ware.com" + }, + "AD EBiS": { + "cats": [ + "10" + ], + "html": [ + "<!-- EBiS contents tag", + "<!--EBiS tag", + "<!-- Tag EBiS", + "<!-- EBiS common tag" + ], + "icon": "ebis.png", + "website": "http://www.ebis.ne.jp" + }, + "Amber": { + "cats": [ + "18", + "22" + ], + "headers": { + "X-Powered-By": "^Amber$" + }, + "icon": "amber.png", + "website": "https://amberframework.org" + }, + "AMPcms": { + "cats": [ + "1" + ], + "js": { + "amp_js_init": "" + }, + "headers": { + "Set-Cookie": "^AMP=", + "X-AMP-Version": "([\\d.]+)\\;version:\\1" + }, + "icon": "AMPcms.png", + "implies": "PHP", + "website": "http://www.ampcms.org" + }, + "AOLserver": { + "cats": [ + "22" + ], + "headers": { + "Server": "AOLserver/?([\\d.]+)?\\;version:\\1" + }, + "icon": "AOLserver.png", + "website": "http://aolserver.com" + }, + "AT Internet Analyzer": { + "cats": [ + "10" + ], + "js": { + "xtsite": "", + "ATInternet": "" + }, + "icon": "AT Internet.png", + "website": "http://atinternet.com/en" + }, + "AT Internet XiTi": { + "cats": [ + "10" + ], + "js": { + "xt_click": "" + }, + "icon": "AT Internet.png", + "script": "xiti\\.com/hit\\.xiti", + "website": "http://atinternet.com/en" + }, + "ATEN": { + "cats": [ + "22" + ], + "headers": { + "Server": "ATEN HTTP Server(?:\\(?V?([\\d\\.]+)\\)?)?\\;version:\\1" + }, + "icon": "ATEN.png", + "website": "http://www.aten.com" + }, + "AWStats": { + "cats": [ + "10" + ], + "icon": "AWStats.png", + "implies": "Perl", + "meta": { + "generator": "AWStats ([\\d.]+(?: \\(build [\\d.]+\\))?)\\;version:\\1" + }, + "website": "http://awstats.sourceforge.net" + }, + "Accessible Portal": { + "cats": [ + "1" + ], + "icon": "Accessible Portal.png", + "implies": "PHP", + "meta": { + "generator": "Accessible Portal" + }, + "website": "http://www.accessibleportal.com" + }, + "Act-On": { + "cats": [ + "32" + ], + "js": { + "ActOn": "" + }, + "icon": "ActOn.png", + "website": "http://act-on.com" + }, + "Prebid": { + "cats": [ + "36" + ], + "icon": "Prebid.png", + "js": { + "pbjs": "", + "PREBID_TIMEOUT": "" + }, + "script": [ + "/prebid\\.js", + "adnxs\\.com/[^\"]*(?:prebid|/pb\\.js)" + ], + "website": "http://prebid.org" + }, + "AdInfinity": { + "cats": [ + "36" + ], + "icon": "AdInfinity.png", + "script": "adinfinity\\.com\\.au", + "website": "http://adinfinity.com.au" + }, + "AdRiver": { + "cats": [ + "36" + ], + "js": { + "adriver": "" + }, + "html": "(?:<embed[^>]+(?:src=\"https?://mh\\d?\\.adriver\\.ru/|flashvars=\"[^\"]*(?:http:%3A//(?:ad|mh\\d?)\\.adriver\\.ru/|adriver_banner))|<(?:(?:iframe|img)[^>]+src|a[^>]+href)=\"https?://ad\\.adriver\\.ru/)", + "icon": "AdRiver.png", + "script": "(?:adriver\\.core\\.\\d\\.js|https?://(?:content|ad|masterh\\d)\\.adriver\\.ru/)", + "website": "http://adriver.ru" + }, + "AdRoll": { + "cats": [ + "36" + ], + "js": { + "adroll_adv_id": "", + "adroll_pix_id": "" + }, + "icon": "AdRoll.svg", + "script": "(?:a|s)\\.adroll\\.com", + "website": "http://adroll.com" + }, + "Adcash": { + "cats": [ + "36" + ], + "js": { + "ac_bgclick_URL": "", + "ct_siteunder": "", + "ct_tag": "", + "ct_nSuUrl": "", + "ct_nOpp": "", + "SuLoaded": "", + "SuUrl": "" + }, + "icon": "Adcash.svg", + "script": "^[^\\/]*//(?:[^\\/]+\\.)?adcash\\.com/(?:script|ad)/", + "url": "^https?://(?:[^\\/]+\\.)?adcash\\.com/script/pop_", + "website": "http://adcash.com" + }, + "AddShoppers": { + "cats": [ + "5" + ], + "icon": "AddShoppers.png", + "script": "cdn\\.shop\\.pe/widget/", + "website": "http://www.addshoppers.com" + }, + "AddThis": { + "cats": [ + "5" + ], + "js": { + "addthis": "" + }, + "icon": "AddThis.svg", + "script": "addthis\\.com/js/", + "website": "http://www.addthis.com" + }, + "AddToAny": { + "cats": [ + "5" + ], + "js": { + "a2apage_init": "" + }, + "icon": "AddToAny.png", + "script": "addtoany\\.com/menu/page\\.js", + "website": "http://www.addtoany.com" + }, + "Adminer": { + "cats": [ + "3" + ], + "html": [ + "Adminer</a> <span class=\"version\">([\\d.]+)</span>\\;version:\\1", + "onclick=\"bodyClick\\(event\\);\" onload=\"verifyVersion\\('([\\d.]+)'\\);\">\\;version:\\1" + ], + "icon": "adminer.png", + "implies": "PHP", + "website": "http://www.adminer.org" + }, + "Adnegah": { + "cats": [ + "36" + ], + "headers": { + "X-Advertising-By": "adnegah\\.net" + }, + "html": "<iframe [^>]*src=\"[^\"]+adnegah\\.net", + "icon": "adnegah.png", + "script": "[^a-z]adnegah.*\\.js$", + "website": "https://Adnegah.net" + }, + "Adobe ColdFusion": { + "cats": [ + "18" + ], + "js": { + "_cfEmails": "" + }, + "headers": { + "Cookie": "CFTOKEN=" + }, + "html": "<!-- START headerTags\\.cfm", + "icon": "Adobe ColdFusion.svg", + "implies": "CFML", + "script": "/cfajax/", + "url": "\\.cfm(?:$|\\?)", + "website": "http://adobe.com/products/coldfusion-family.html" + }, + "Adobe Experience Manager": { + "cats": [ + "1" + ], + "html": [ + "<div class=\"[^\"]*parbase", + "<div[^>]+data-component-path=\"[^\"+]jcr:" + ], + "icon": "Adobe Experience Manager.svg", + "implies": "Java", + "script": "/etc/designs/", + "website": "http://www.adobe.com/au/marketing-cloud/enterprise-content-management.html" + }, + "Adobe GoLive": { + "cats": [ + "20" + ], + "icon": "Adobe GoLive.png", + "meta": { + "generator": "Adobe GoLive(?:\\s([\\d.]+))?\\;version:\\1" + }, + "website": "http://www.adobe.com/products/golive" + }, + "Adobe Muse": { + "cats": [ + "20" + ], + "icon": "Adobe Muse.svg", + "meta": { + "generator": "^Muse(?:$| ?/?(\\d[\\d.]+))\\;version:\\1" + }, + "website": "http://muse.adobe.com" + }, + "Adobe RoboHelp": { + "cats": [ + "4" + ], + "js": { + "gbWhVer": "", + "gbWhLang": "", + "gbWhMsg": "", + "gbWhUtil": "", + "gbWhProxy": "" + }, + "icon": "Adobe RoboHelp.svg", + "meta": { + "generator": "^Adobe RoboHelp(?: ([\\d]+))?\\;version:\\1" + }, + "script": "(?:wh(?:utils|ver|proxy|lang|topic|msg)|ehlpdhtm)\\.js", + "website": "http://adobe.com/products/robohelp.html" + }, + "Advanced Web Stats": { + "cats": [ + "10" + ], + "html": "aws\\.src = [^<]+caphyon-analytics", + "icon": "Advanced Web Stats.png", + "implies": "Java", + "website": "http://www.advancedwebstats.com" + }, + "Advert Stream": { + "cats": [ + "36" + ], + "js": { + "advst_is_above_the_fold": "" + }, + "icon": "Advert Stream.png", + "script": "(?:ad\\.advertstream\\.com|adxcore\\.com)", + "website": "http://www.advertstream.com" + }, + "Adzerk": { + "cats": [ + "36" + ], + "js": { + "ados": "", + "adosResults": "" + }, + "html": "<iframe [^>]*src=\"[^\"]+adzerk\\.net", + "icon": "Adzerk.png", + "script": "adzerk\\.net/ados\\.js", + "website": "http://adzerk.com" + }, + "Aegea": { + "cats": [ + "11" + ], + "headers": { + "X-Powered-By": "^E2 Aegea v(\\d+)$\\;version:\\1" + }, + "icon": "Aegea.png", + "implies": [ + "PHP", + "jQuery" + ], + "website": "http://blogengine.ru" + }, + "AfterBuy": { + "cats": [ + "6" + ], + "html": [ + "<dd>This OnlineStore is brought to you by ViA-Online GmbH Afterbuy\\. Information and contribution at https://www\\.afterbuy\\.de</dd>" + ], + "icon": "after-buy.png", + "script": "shop-static\\.afterbuy\\.de", + "website": "http://www.afterbuy.de" + }, + "Afosto": { + "cats": [ + "6" + ], + "headers": { + "X-Powered-By": "Afosto SaaS BV" + }, + "icon": "Afosto.svg", + "website": "http://afosto.com" + }, + "Aircall": { + "cats": [ + "52" + ], + "icon": "aircall.png", + "script": "^https?://cdn\\.aircall\\.io/", + "website": "http://aircall.io" + }, + "Airee": { + "cats": [ + "31" + ], + "headers": { + "Server": "Airee" + }, + "icon": "Airee.png", + "website": "http://xn--80aqc2a.xn--p1ai" + }, + "Akamai": { + "cats": [ + "31" + ], + "headers": { + "X-Akamai-Transformed": "" + }, + "icon": "akamai.svg", + "website": "http://akamai.com" + }, + "Akka HTTP": { + "cats": [ + "18", + "22" + ], + "headers": { + "Server": "akka-http(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "akka-http.png", + "website": "http://akka.io" + }, + "Algolia Realtime Search": { + "cats": [ + "29" + ], + "js": { + "AlgoliaSearch": "" + }, + "icon": "Algolia Realtime Search.svg", + "website": "http://www.algolia.com" + }, + "Allegro RomPager": { + "cats": [ + "22" + ], + "headers": { + "Server": "Allegro-Software-RomPager(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "Allegro RomPager.png", + "website": "http://allegrosoft.com/embedded-web-server-s2" + }, + "AlloyUI": { + "cats": [ + "12" + ], + "js": { + "AUI": "" + }, + "icon": "AlloyUI.png", + "implies": [ + "Bootstrap", + "YUI" + ], + "script": "^https?://cdn\\.alloyui\\.com/", + "website": "http://www.alloyui.com" + }, + "Amaya": { + "cats": [ + "20" + ], + "icon": "Amaya.png", + "meta": { + "generator": "Amaya(?: V?([\\d.]+[a-z]))?\\;version:\\1" + }, + "website": "http://www.w3.org/Amaya" + }, + "Amazon Cloudfront": { + "cats": [ + "31" + ], + "headers": { + "X-Amz-Cf-Id": "" + }, + "icon": "Amazon-Cloudfront.svg", + "website": "http://aws.amazon.com/cloudfront/" + }, + "Amazon EC2": { + "cats": [ + "22" + ], + "headers": { + "Server": "\\(Amazon\\)" + }, + "icon": "aws-ec2.svg", + "website": "http://aws.amazon.com/ec2/" + }, + "Amazon S3": { + "cats": [ + "19" + ], + "headers": { + "Server": "AmazonS3" + }, + "icon": "aws-s3.svg", + "website": "http://aws.amazon.com/s3/" + }, + "Ametys": { + "cats": [ + "1" + ], + "icon": "Ametys.png", + "implies": "Java", + "meta": { + "generator": "(?:Ametys|Anyware Technologies)" + }, + "script": "ametys\\.js", + "website": "http://ametys.org" + }, + "Amiro.CMS": { + "cats": [ + "1" + ], + "icon": "Amiro.CMS.png", + "implies": "PHP", + "meta": { + "generator": "Amiro" + }, + "website": "http://amirocms.com" + }, + "Angular Material": { + "cats": [ + "18" + ], + "js": { + "ngMaterial": "" + }, + "icon": "Angular.svg", + "implies": "AngularJS", + "script": [ + "/([\\d.]+(?:\\-?rc[.\\d]*)*)/angular-material(?:\\.min)?\\.js\\;version:\\1", + "angular-material.*\\.js" + ], + "website": "http://material.angularjs.org" + }, + "AngularJS": { + "cats": [ + "12" + ], + "js": { + "angular": "", + "angular.version.full": "(.*)\\;version:\\1" + }, + "icon": "AngularJS.svg", + "script": [ + "angular(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", + "/([\\d.]+(?:\\-?rc[.\\d]*)*)/angular(?:\\.min)?\\.js\\;version:\\1", + "angular.*\\.js" + ], + "website": "http://angularjs.org" + }, + "Apache": { + "cats": [ + "22" + ], + "headers": { + "Server": "(?:Apache(?:$|/([\\d.]+)|[^/-])|(?:^|\b)HTTPD)\\;version:\\1" + }, + "icon": "Apache.svg", + "website": "http://apache.org" + }, + "Apache HBase": { + "cats": [ + "34" + ], + "html": "<style[^>]+static/hbase", + "icon": "Apache HBase.png", + "implies": "Java", + "website": "http://hbase.apache.org" + }, + "Apache Hadoop": { + "cats": [ + "34" + ], + "html": "<style[^>]+static/hadoop", + "icon": "Apache Hadoop.svg", + "website": "http://hadoop.apache.org" + }, + "Apache JSPWiki": { + "cats": [ + "8" + ], + "html": "<html[^>]* xmlns:jspwiki=", + "icon": "Apache JSPWiki.png", + "implies": "Apache Tomcat", + "script": "jspwiki", + "url": "wiki\\.jsp", + "website": "http://jspwiki.org" + }, + "Apache Tomcat": { + "cats": [ + "22" + ], + "headers": { + "Server": "^Apache-Coyote(/1\\.1)?$\\;version:\\1?4.1+:", + "X-Powered-By": "\bTomcat\b(?:-([\\d.]+))?\\;version:\\1" + }, + "icon": "Apache Tomcat.svg", + "implies": "Java", + "website": "http://tomcat.apache.org" + }, + "Apache Traffic Server": { + "cats": [ + "22" + ], + "headers": { + "Server": "ATS/?([\\d.]+)?\\;version:\\1" + }, + "icon": "Apache Traffic Server.png", + "website": "http://trafficserver.apache.org/" + }, + "Apache Wicket": { + "cats": [ + "18" + ], + "js": { + "Wicket": "" + }, + "icon": "Apache Wicket.svg", + "implies": "Java", + "website": "http://wicket.apache.org" + }, + "ApexPages": { + "cats": [ + "51" + ], + "headers": { + "X-Powered-By": "Salesforce\\.com ApexPages" + }, + "icon": "ApexPages.png", + "implies": "Salesforce", + "website": "https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_intro.htm" + }, + "Apostrophe CMS": { + "cats": [ + "1" + ], + "html": "<[^>]+data-apos-refreshable[^>]", + "icon": "apostrophecms.svg", + "implies": "Node.js", + "website": "http://apostrophecms.org" + }, + "AppNexus": { + "cats": [ + "36" + ], + "html": "<(?:iframe|img)[^>]+adnxs\\.(?:net|com)", + "icon": "AppNexus.svg", + "script": "adnxs\\.(?:net|com)", + "website": "http://appnexus.com" + }, + "Arastta": { + "cats": [ + "6" + ], + "excludes": "OpenCart", + "headers": { + "Arastta": "(.*)\\;version:\\1", + "X-Arastta": "" + }, + "html": "Powered by <a [^>]*href=\"https?://(?:www\\.)?arastta\\.org[^>]+>Arastta", + "icon": "Arastta.svg", + "implies": "PHP", + "script": "arastta\\.js", + "website": "http://arastta.org" + }, + "Arc Forum": { + "cats": [ + "2" + ], + "html": "ping\\.src = node\\.href;\\s+[^>]+\\s+}\\s+</script>", + "icon": "Arc Forum.png", + "website": "http://arclanguage.org" + }, + "ArcGIS API for JavaScript": { + "cats": [ + "35" + ], + "script": [ + "js\\.arcgis\\.com", + "basemaps\\.arcgis\\.com" + ], + "icon": "arcgis_icon.png", + "website": "https://developers.arcgis.com/javascript/" + }, + "Artifactory": { + "cats": [ + "47" + ], + "js": { + "ArtifactoryUpdates": "" + }, + "html": [ + "<span class=\"version\">Artifactory(?: Pro)?(?: Power Pack)?(?: ([\\d.]+))?\\;version:\\1" + ], + "icon": "Artifactory.svg", + "script": [ + "wicket/resource/org\\.artifactory\\." + ], + "website": "http://jfrog.com/open-source/#os-arti" + }, + "Artifactory Web Server": { + "cats": [ + "22" + ], + "headers": { + "Server": "Artifactory(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "Artifactory.svg", + "implies": [ + "Artifactory" + ], + "website": "http://jfrog.com/open-source/#os-arti" + }, + "ArvanCloud": { + "cats": [ + "31" + ], + "js": { + "ArvanCloud": "" + }, + "headers": { + "AR-PoweredBy": "Arvan Cloud \\(arvancloud\\.com\\)" + }, + "icon": "ArvanCloud.png", + "website": "http://www.ArvanCloud.com" + }, + "AsciiDoc": { + "cats": [ + "1", + "20", + "27" + ], + "js": { + "asciidoc": "" + }, + "icon": "AsciiDoc.png", + "meta": { + "generator": "^AsciiDoc ([\\d.]+)\\;version:\\1" + }, + "website": "http://www.methods.co.nz/asciidoc" + }, + "Asciinema": { + "cats": [ + "14" + ], + "js": { + "asciinema": "" + }, + "script": "asciinema\\.org/", + "icon": "asciinema.png", + "html": "<asciinema-player", + "website": "https://asciinema.org/" + }, + "Atlassian Bitbucket": { + "cats": [ + "47" + ], + "js": { + "bitbucket": "" + }, + "icon": "Atlassian Bitbucket.svg", + "implies": "Python", "html": "<li>Atlassian Bitbucket <span title=\"[a-z0-9]+\" id=\"product-version\" data-commitid=\"[a-z0-9]+\" data-system-build-number=\"[a-z0-9]+\"> v([\\d.]+)<\\;version:\\1", - "meta": { - "application-name": "Bitbucket" - }, - "website": "http://www.atlassian.com/software/bitbucket/overview/" - }, - "Atlassian Confluence": { - "cats": [ - "8" - ], - "headers": { - "X-Confluence-Request-Time": "" - }, - "html": "Powered by <a href=[^>]+atlassian\\.com/software/confluence(?:[^>]+>Atlassian Confluence</a> ([\\d.]+))?\\;version:\\1", - "icon": "Atlassian Confluence.svg", - "implies": "Java", - "meta": { - "confluence-request-time": "" - }, - "website": "http://www.atlassian.com/software/confluence/overview/team-collaboration-software" - }, - "Atlassian FishEye": { - "cats": [ - "47" - ], - "headers": { - "Set-cookie": "FESESSIONID" - }, - "html": "<title>(?:Log in to )?FishEye (?:and Crucible )?([\\d.]+)?\\;version:\\1", - "icon": "Atlassian FishEye.svg", - "website": "http://www.atlassian.com/software/fisheye/overview/" - }, - "Atlassian Jira": { - "cats": [ - "13" - ], - "env": "^jira$", - "html": "Powered by\\s+]+atlassian\\.com/(?:software/jira|jira-bug-tracking/)[^>]+>Atlassian\\s+JIRA(?:[^v]*v(?:ersion: )?(\\d+\\.\\d+(?:\\.\\d+)?))?\\;version:\\1", - "icon": "Atlassian Jira.svg", - "implies": "Java", - "meta": { - "ajs-version-number": "([\\d\\.]+)\\;version:\\1", - "application-name": "JIRA" - }, - "website": "http://www.atlassian.com/software/jira/overview/" - }, - "Atlassian Jira Issue Collector": { - "cats": [ - "13", - "47" - ], - "icon": "Atlassian Jira.svg", - "script": [ - "jira-issue-collector-plugin", - "atlassian\\.jira\\.collector\\.plugin" - ], - "website": "http://www.atlassian.com/software/jira/overview/" - }, - "Aurelia": { - "cats": [ - "12" - ], - "html": [ - "<[^>]+aurelia-app=[^>]", - "<[^>]+data-main=[^>]aurelia-bootstrapper", - "<[^>]+au-target-id=[^>]\\d" - ], - "icon": "Aurelia.svg", - "script": [ - "aurelia(?:\\.min)?\\.js" - ], - "website": "http://aurelia.io" - }, - "Avangate": { - "cats": [ - "6" - ], - "env": "^(?:__)?avng8_", - "html": "]* href=\"^https?://edge\\.avangate\\.net/", - "icon": "Avangate.svg", - "script": "^https?://edge\\.avangate\\.net/", - "website": "http://avangate.com" - }, - "BEM": { - "cats": [ - "12" - ], - "html": "<[^>]+data-bem", - "icon": "BEM.png", - "website": "http://en.bem.info" - }, - "BIGACE": { - "cats": [ - "1" - ], - "html": "(?:Powered by ]+BIGACE|", - "icon": "Business Catalyst.png", - "script": "CatalystScripts", - "website": "http://businesscatalyst.com" - }, - "BuySellAds": { - "cats": [ - "36" - ], - "env": "^_bsa", - "html": "]*>[^<]+?bsa\\.src\\s*=\\s*['\"](?:https?:)?\\/{2}\\w\\d\\.buysellads\\.com\\/[\\w\\d\\/]+?bsa\\.js['\"]", - "icon": "BuySellAds.png", - "script": "^https?://s\\d\\.buysellads\\.com/", - "website": "http://buysellads.com" - }, - "C++": { - "cats": [ - "27" - ], - "icon": "C++.png", - "website": "http://isocpp.org" - }, - "CFML": { - "cats": [ - "27" - ], - "icon": "CFML.png", - "website": "http://adobe.com/products/coldfusion-family.html" - }, - "CKEditor": { - "cats": [ - "24" - ], - "env": "^CKEDITOR$", - "icon": "CKEditor.png", - "website": "http://ckeditor.com" - }, - "CMS Made Simple": { - "cats": [ - "1" - ], - "headers": { - "Set-Cookie": "^CMSSESSID" - }, - "icon": "CMS Made Simple.png", - "implies": "PHP", - "meta": { - "generator": "CMS Made Simple" - }, - "website": "http://cmsmadesimple.org" - }, - "CMSimple": { - "cats": [ - "1" - ], - "implies": "PHP", - "meta": { - "generator": "CMSimple( [\\d.]+)?\\;version:\\1" - }, - "website": "http://www.cmsimple.org/en" - }, - "CO2Stats": { - "cats": [ - "10" - ], - "html": "src=[^>]+co2stats\\.com/propres\\.php", - "icon": "CO2Stats.png", - "website": "http://co2stats.com" - }, - "CPG Dragonfly": { - "cats": [ - "1" - ], - "headers": { - "X-Powered-By": "^Dragonfly CMS" - }, - "icon": "CPG Dragonfly.png", - "implies": "PHP", - "meta": { - "generator": "CPG Dragonfly" - }, - "website": "http://dragonflycms.org" - }, - "CS Cart": { - "cats": [ - "6" - ], - "env": "^fn_compare_strings$", - "html": [ - " Powered by (?:]+cs-cart\\.com|CS-Cart)", - "\\.cm-noscript[^>]+" - ], - "icon": "CS Cart.png", - "implies": "PHP", - "website": "http://www.cs-cart.com" - }, - "CacheFly": { - "cats": [ - "31" - ], - "headers": { - "Server": "^CFS ", - "X-CF1": "", - "X-CF2": "" - }, - "icon": "CacheFly.png", - "website": "http://www.cachefly.com" - }, - "Caddy": { - "cats": [ - "22" - ], - "headers": { - "Server": "^Caddy$" - }, - "icon": "caddy.svg", - "implies": "Go", - "website": "http://caddyserver.com" - }, - "CakePHP": { - "cats": [ - "18" - ], - "headers": { - "Set-Cookie": "cakephp=" - }, - "icon": "CakePHP.png", - "implies": "PHP", - "meta": { - "application-name": "CakePHP" - }, - "website": "http://cakephp.org" - }, - "Canon": { - "cats": [ - "40" - ], - "icon": "Canon.png", - "website": "http://www.canon.com" - }, - "Canon HTTP Server": { - "cats": [ - "22" - ], - "headers": { - "Server": "CANON HTTP Server(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "Canon.png", - "implies": "Canon", - "website": "http://www.canon.com" - }, - "Captch Me": { - "cats": [ - "16", - "36" - ], - "env": "^Captchme", - "icon": "Captch Me.svg", - "script": "^https?://api\\.captchme\\.net/", - "website": "http://captchme.com" - }, - "Carbon Ads": { - "cats": [ - "36" - ], - "env": "^_carbonads", - "html": "<[a-z]+ [^>]*id=\"carbonads-container\"", - "icon": "Carbon Ads.png", - "script": "[^\\/]*\\/\\/(?:engine|srv)\\.carbonads\\.com\\/", - "website": "http://carbonads.net" - }, - "Cargo": { - "cats": [ - "1" - ], - "html": "]+Cargo feed", - "icon": "Cargo.png", - "implies": "PHP", - "meta": { - "cargo_title": "" - }, - "script": "/cargo\\.", - "website": "http://cargocollective.com" - }, - "Catberry.js": { - "cats": [ - "12", - "18" - ], - "env": "^catberry$", - "headers": { - "X-Powered-By": "Catberry" - }, - "icon": "Catberry.js.png", - "implies": "Node.js", - "website": "http://catberry.org" - }, - "Catwalk": { - "cats": [ - "22" - ], - "headers": { - "Server": "Catwalk\\/?([\\d\\.]+)?\\;version:\\1" - }, - "icon": "Catwalk.png", - "implies": "Canon", - "website": "http://www.canon.com" - }, - "CentOS": { - "cats": [ - "28" - ], - "headers": { - "Server": "CentOS", - "X-Powered-By": "CentOS" - }, - "icon": "CentOS.png", - "website": "http://centos.org" - }, - "CenteHTTPd": { - "cats": [ - "22" - ], - "headers": { - "Server": "CenteHTTPd(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "CenteHTTPd.png", - "website": "http://cente.jp/cente/app/HTTPdc.html" - }, - "Chameleon": { - "cats": [ - "1" - ], - "icon": "Chameleon.png", - "implies": [ - "Apache", - "PHP" - ], - "meta": { - "generator": "chameleon-cms" - }, - "website": "http://chameleon-system.de" - }, - "Chamilo": { - "cats": [ - "21" - ], - "headers": { - "X-Powered-By": "Chamilo ([\\d.]+)\\;version:\\1" - }, - "html": "\">Chamilo ([\\d.]+)\\;version:\\1", - "icon": "Chamilo.png", - "implies": "PHP", - "meta": { - "generator": "Chamilo ([\\d.]+)\\;version:\\1" - }, - "website": "http://www.chamilo.org" - }, - "Chart.js": { - "cats": [ - "25" - ], - "env": "^Chart$\\;confidence:50", - "icon": "Chart.js.svg", - "script": [ - "Chart(?:\\.bundle)?(?:\\.min)?\\.js\\;confidence:50", - "chartjs\\.org/dist/([\\d.]+(?:-[^/]+)?|master|latest)/Chart.*\\.js\\;version:\\1", - "cdnjs\\.cloudflare\\.com/ajax/libs/Chart\\.js/([\\d.]+(?:-[^/]+)?)/Chart.*\\.js\\;version:\\1", - "cdn\\.jsdelivr\\.net/npm/chart\\.js@([\\d.]+(?:-[^/]+)?|latest)/dist/Chart.*\\.js\\;version:\\1", - "cdn\\.jsdelivr\\.net/gh/chartjs/Chart\\.js@([\\d.]+(?:-[^/]+)?|latest)/dist/Chart.*\\.js\\;version:\\1" - ], - "website": "http://www.chartjs.org" - }, - "Chartbeat": { - "cats": [ - "10" - ], - "env": "^_sf_(?:endpt|async_config)$", - "icon": "Chartbeat.png", - "script": "chartbeat\\.js", - "website": "http://chartbeat.com" - }, - "Cherokee": { - "cats": [ - "22" - ], - "headers": { - "Server": "Cherokee(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "Cherokee.png", - "website": "http://www.cherokee-project.com" - }, - "CherryPy": { - "cats": [ - "18", - "22" - ], - "headers": { - "Server": "CherryPy\\/?([\\d\\.]+)?\\;version:\\1" - }, - "icon": "CherryPy.png", - "implies": "Python", - "website": "http://www.cherrypy.org" - }, - "Chitika": { - "cats": [ - "36" - ], - "env": "ch_c(?:lient|olor_site_link)", - "icon": "Chitika.png", - "script": "scripts\\.chitika\\.net/", - "website": "http://chitika.com" - }, - "Ckan": { - "cats": [ - "1" - ], - "headers": { - "Access-Control-Allow-Headers": "X-CKAN-API-KEY", - "Link": "; rel=shortlink" - }, - "icon": "Ckan.png", - "implies": [ - "Python", - "Solr", - "Java", - "PostgreSQL" - ], - "meta": { - "generator": ".*ckan.*" - }, - "website": "http://ckan.org/" - }, - "ClickHeat": { - "cats": [ - "10" - ], - "env": "^clickHeat", - "icon": "ClickHeat.png", - "implies": "PHP", - "script": "clickheat.*\\.js", - "website": "http://www.labsmedia.com/clickheat/index.html" - }, - "ClickTale": { - "cats": [ - "10" - ], - "env": "^ClickTale", - "icon": "ClickTale.png", - "website": "http://www.clicktale.com" - }, - "Clicky": { - "cats": [ - "10" - ], - "env": "^clicky$", - "icon": "Clicky.png", - "script": "static\\.getclicky\\.com", - "website": "http://getclicky.com" - }, - "Clientexec": { - "cats": [ - "6" - ], - "html": "clientexec\\.[^>]*\\s?=\\s?[^>]*;", - "icon": "Clientexec.png", - "website": "http://www.clientexec.com" - }, - "Clipboard.js": { - "cats": [ - "19" - ], - "env": "^Clipboard$", - "icon": "Clipboard.js.svg", - "script": "clipboard(?:\\.min)?\\.js", - "website": "https://clipboardjs.com/" - }, - "CloudCart": { - "cats": [ - "6" - ], - "icon": "cloudcart.svg", - "meta": { - "author": "^CloudCart LLC$" - }, - "script": "/cloudcart-(?:assets|storage)/", - "website": "http://cloudcart.com" - }, - "CloudFlare": { - "cats": [ - "31" - ], - "env": "^CloudFlare$", - "headers": { - "Server": "cloudflare" - }, - "icon": "CloudFlare.svg", - "website": "http://www.cloudflare.com" - }, - "Cloudera": { - "cats": [ - "34" - ], - "headers": { - "Server": "cloudera" - }, - "icon": "Cloudera.png", - "website": "http://www.cloudera.com" - }, - "CodeIgniter": { - "cats": [ - "18" - ], - "headers": { - "Set-Cookie": "(?:exp_last_activity|exp_tracker|ci_(?:session|(csrf_token)))\\;version:\\1?2+:" - }, - "html": "]+name=\"ci_csrf_token\"\\;version:2+", - "icon": "CodeIgniter.png", - "implies": "PHP", - "website": "http://codeigniter.com" - }, - "CodeMirror": { - "cats": [ - "19" - ], - "env": "^CodeMirror$", - "icon": "CodeMirror.png", - "website": "http://codemirror.net" - }, - "CoinHive": { - "cats": [ - "56" - ], - "env": "^CoinHive$", - "script": "\\/(?:coinhive|(authedmine))(?:\\.min)?\\.js\\;version:\\1?opt-in:", - "url": "https?://cnhv\\.co/", - "icon": "CoinHive.svg", - "website": "https://coinhive.com" - }, - "CoinHive Captcha": { - "cats": [ - "16", - "56" - ], - "html": "(?:]+class=\"coinhive-captcha[^>]+data-key|]+data-key[^>]+class=\"coinhive-captcha)", - "script": "https?://authedmine\\.com/(?:lib/captcha|captcha)", - "icon": "CoinHive.svg", - "website": "https://coinhive.com" - }, - "Comandia": { - "cats": [ - "6" - ], - "env": "^Comandia$", - "html": "]+=['\"]//cdn\\.mycomandia\\.com", - "icon": "Comandia.svg", - "website": "http://comandia.com" - }, - "Commerce Server": { - "cats": [ - "6" - ], - "headers": { - "COMMERCE-SERVER-SOFTWARE": "" - }, - "icon": "Commerce Server.png", - "implies": "Microsoft ASP.NET", - "website": "http://commerceserver.net" - }, - "CompaqHTTPServer": { - "cats": [ - "22" - ], - "headers": { - "Server": "CompaqHTTPServer\\/?([\\d\\.]+)?\\;version:\\1" - }, - "icon": "HP.svg", - "website": "http://www.hp.com" - }, - "Concrete5": { - "cats": [ - "1" - ], - "env": "^CCM_IMAGE_PATH$", - "icon": "Concrete5.png", - "implies": "PHP", - "meta": { - "generator": "concrete5 - ([\\d.ab]+)\\;version:\\1" - }, - "script": "concrete/js/", - "website": "http://concrete5.org" - }, - "Connect": { - "cats": [ - "18" - ], - "headers": { - "X-Powered-By": "^Connect$" - }, - "icon": "Connect.png", - "implies": "Node.js", - "website": "http://www.senchalabs.org/connect" - }, - "Contao": { - "cats": [ - "1" - ], - "html": [ - "", - "]+(?:typolight|contao)\\.css" - ], - "icon": "Contao.png", - "implies": "PHP", - "meta": { - "generator": "^Contao Open Source CMS$" - }, - "website": "http://contao.org" - }, - "Contenido": { - "cats": [ - "1" - ], - "icon": "Contenido.png", - "implies": "PHP", - "meta": { - "generator": "Contenido ([\\d.]+)\\;version:\\1" - }, - "website": "http://contenido.org/en" - }, - "Contens": { - "cats": [ - "1" - ], - "icon": "Contens.png", - "implies": [ - "Java", - "CFML" - ], - "meta": { - "generator": "Contensis CMS Version ([\\d.]+)\\;version:\\1" - }, - "website": "http://www.contens.com/en/pub/index.cfm" - }, - "ContentBox": { - "cats": [ - "1", - "11" - ], - "icon": "ContentBox.png", - "implies": "Adobe ColdFusion", - "meta": { - "generator": "ContentBox powered by ColdBox" - }, - "website": "http://www.gocontentbox.org" - }, - "Contentful": { - "cats": [ - "1" - ], - "html": "<[^>]+(?:https?:)?//(?:assets|downloads|images|videos)\\.contentful\\.com", - "icon": "Contentful.svg", - "website": "http://www.contentful.com" - }, - "ConversionLab": { - "cats": [ - "10" - ], - "icon": "ConversionLab.png", - "script": "conversionlab\\.trackset\\.com/track/tsend\\.js", - "website": "http://www.trackset.it/conversionlab" - }, - "Coppermine": { - "cats": [ - "7" - ], - "html": "|", - "icon": "InProces.png", - "script": "brein/inproces/website/websitefuncties\\.js", - "website": "http://www.brein.nl/oplossing/product/website" - }, - "Incapsula": { - "cats": [ - "31" - ], - "headers": { - "X-CDN": "Incapsula" - }, - "icon": "Incapsula.png", - "website": "http://www.incapsula.com" - }, - "Indexhibit": { - "cats": [ - "1" - ], - "html": "<(?:link|a href) [^>]+ndxz-studio", - "implies": [ - "PHP", - "Apache", - "Exhibit" - ], - "meta": { - "generator": "Indexhibit" - }, - "website": "http://www.indexhibit.org" - }, - "Indico": { - "cats": [ - "1" - ], - "headers": { - "Set-cookie": "MAKACSESSION" - }, - "html": "Powered by\\s+(?:CERN )?(?:CDS )?Indico( [\\d\\.]+)?\\;version:\\1", - "icon": "Indico.png", - "website": "http://indico-software.org" - }, - "Indy": { - "cats": [ - "22" - ], - "headers": { - "Server": "Indy(?:/([\\d.]+))?\\;version:\\1" - }, - "website": "http://indyproject.org" - }, - "InfernoJS": { - "cats": [ - "12" - ], - "env": "^Inferno$", - "icon": "InfernoJS.png", - "website": "https://infernojs.org/" - }, - "Infusionsoft": { - "cats": [ - "32" - ], - "html": [ - "]*name=\"infusionsoft_version\" [^>]*value=\"([^>]*)\" [^>]*\\/>\\;version:\\1", - "]*value=\"([^>]*)\" [^>]*name=\"infusionsoft_version\" [^>]*\\/>\\;version:\\1" - ], - "icon": "infusionsoft.svg", - "website": "http://infusionsoft.com" - }, - "InstantCMS": { - "cats": [ - "1" - ], - "headers": { - "Set-Cookie": "InstantCMS\\[logdate\\]=" - }, - "icon": "InstantCMS.png", - "implies": "PHP", - "meta": { - "generator": "InstantCMS" - }, - "website": "http://www.instantcms.ru" - }, - "Intel Active Management Technology": { - "cats": [ - "22", - "46" - ], - "headers": { - "Server": "Intel\\(R\\) Active Management Technology(?: ([\\d.]+))?\\;version:\\1" - }, - "icon": "Intel Active Management Technology.png", - "website": "http://intel.com" - }, - "IntenseDebate": { - "cats": [ - "15" - ], - "icon": "IntenseDebate.png", - "script": "intensedebate\\.com", - "website": "http://intensedebate.com" - }, - "Intercom": { - "cats": [ - "10" - ], - "env": "^Intercom$", - "icon": "Intercom.png", - "script": "(?:api\\.intercom\\.io/api|static\\.intercomcdn\\.com/intercom\\.v1)", - "website": "http://intercom.io" - }, - "Intershop": { - "cats": [ - "6" - ], - "icon": "Intershop.png", - "script": "(?:is-bin|INTERSHOP)", - "website": "http://intershop.com" - }, - "Invenio": { - "cats": [ - "50" - ], - "headers": { - "Set-cookie": "INVENIOSESSION" - }, - "html": "(?:Powered by|System)\\s+(?:CERN )?(?:CDS )?Invenio\\s*v?([\\d\\.]+)?\\;version:\\1", - "icon": "Invenio.png", - "website": "http://invenio-software.org" - }, - "Ionicons": { - "cats": [ - "17" - ], - "html": "]* href=[^>]+ionicons(?:\\.min)?\\.css", - "icon": "Ionicons.png", - "website": "http://ionicons.com" - }, - "JAlbum": { - "cats": [ - "7" - ], - "icon": "JAlbum.png", - "implies": "Java", - "meta": { - "generator": "JAlbum( [\\d.]+)?\\;version:\\1" - }, - "website": "http://jalbum.net/en" - }, - "JBoss Application Server": { - "cats": [ - "22" - ], - "headers": { - "X-Powered-By": "JBoss(?:-([\\d.]+))?\\;version:\\1" - }, - "icon": "JBoss Application Server.png", - "website": "http://jboss.org/jbossas.html" - }, - "JBoss Web": { - "cats": [ - "22" - ], - "excludes": "Apache Tomcat", - "headers": { - "X-Powered-By": "JBossWeb(?:-([\\d.]+))?\\;version:\\1" - }, - "icon": "JBoss Web.png", - "implies": "JBoss Application Server", - "website": "http://jboss.org/jbossweb" - }, - "JC-HTTPD": { - "cats": [ - "22" - ], - "excludes": "Apache", - "headers": { - "Server": "JC-HTTPD(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "JC-HTTPD.png", - "implies": "Canon", - "website": "http://canon.com" - }, - "JET Enterprise": { - "cats": [ - "6" - ], - "headers": { - "powered": "jet-enterprise" - }, - "icon": "JET Enterprise.svg", - "website": "http://www.jetecommerce.com.br/" - }, - "JS Charts": { - "cats": [ - "25" - ], - "env": "^JSChart$", - "icon": "JS Charts.png", - "script": "jscharts.*\\.js", - "website": "http://www.jscharts.com" - }, - "JTL Shop": { - "cats": [ - "6" - ], - "headers": { - "Set-Cookie": "JTLSHOP=" - }, - "html": "(?:]+name=\"JTLSHOP|]*>Jekyll]+id=\"wrapper_r\"|<[^>]+(?:feed|components)/com_|]+class=\"pill)\\;confidence:50", - "icon": "Joomla.svg", - "implies": "PHP", - "meta": { - "generator": "Joomla!(?: ([\\d.]+))?\\;version:\\1" - }, - "url": "option=com_", - "website": "http://joomla.org" - }, - "JSEcoin": { - "cats": [ - "56" - ], - "env": "^jseMine$", - "script": "^(?:https):?//load\\.jsecoin\\.com/server/load/", - "icon": "JSEcoin.png", - "website": "https://jsecoin.com/" - }, - "K2": { - "cats": [ - "19" - ], - "env": "^K2RatingURL$", - "html": "", - "icon": "Lightspeed.svg", - "script": "http://assets\\.webshopapp\\.com", - "url": "seoshop.webshopapp.com", - "website": "http://www.lightspeedhq.com/products/ecommerce/" - }, - "Lighty": { - "cats": [ - "18" - ], - "headers": { - "Set-Cookie": "lighty_version" - }, - "icon": "Lighty.png", - "implies": "PHP", - "website": "http://gitlab.com/lighty/framework" - }, - "LimeSurvey": { - "cats": [ - "19" - ], - "headers": { - "generator": "LimeSurvey" - }, - "icon": "LimeSurvey.png", - "website": "http://limesurvey.org/" - }, - "LinkSmart": { - "cats": [ - "36" - ], - "env": "^(?:_mb_site_guid$|LS_JSON|LinkSmart(?:_|$))", - "icon": "LinkSmart.png", - "script": "^https?://cdn\\.linksmart\\.com/linksmart_([\\d.]+?)(?:\\.min)?\\.js\\;version:\\1", - "website": "http://linksmart.com" - }, - "Linkedin": { - "cats": [ - "5" - ], - "icon": "Linkedin.svg", - "script": "//platform\\.linkedin\\.com/in\\.js", - "website": "http://linkedin.com" - }, - "List.js": { - "cats": [ - "12" - ], - "env": "^List$", - "icon": "List.js.png", - "script": "^list\\.(?:min\\.)?js$", - "website": "http://www.listjs.com" - }, - "LiteSpeed": { - "cats": [ - "22" - ], - "headers": { - "Server": "^LiteSpeed$" - }, - "icon": "LiteSpeed.svg", - "website": "http://litespeedtech.com" - }, - "Lithium": { - "cats": [ - "1" - ], - "env": [ - "^LITHIUM$" - ], - "headers": { - "Set-Cookie": "LithiumVisitor=" - }, - "html": " ]+Powered by Lithium", - "icon": "Lithium.png", - "implies": "PHP", - "website": "http://www.lithium.com" - }, - "LiveAgent": { - "cats": [ - "52" - ], - "env": "^LiveAgent$", - "icon": "LiveAgent.png", - "website": "http://www.ladesk.com" - }, - "LiveChat": { - "cats": [ - "52" - ], - "icon": "LiveChat.png", - "script": "cdn\\.livechatinc\\.com/.*tracking\\.js", - "website": "http://livechatinc.com" - }, - "LiveJournal": { - "cats": [ - "11" - ], - "icon": "LiveJournal.png", - "url": "\\.livejournal\\.com", - "website": "http://www.livejournal.com" - }, - "LivePerson": { - "cats": [ - "52" - ], - "icon": "LivePerson.png", - "script": "^https?://lptag\\.liveperson\\.net/tag/tag\\.js", - "website": "https://www.liveperson.com/" - }, - "LiveStreet CMS": { - "cats": [ - "1" - ], - "env": "^LIVESTREET", - "headers": { - "X-Powered-By": "LiveStreet CMS" - }, - "icon": "LiveStreet CMS.png", - "implies": "PHP", - "website": "http://livestreetcms.com" - }, - "Livefyre": { - "cats": [ - "15" - ], - "env": [ - "^fyre$", - "^FyreLoader$" - ], - "html": "<[^>]+(?:id|class)=\"livefyre", - "icon": "Livefyre.png", - "script": "livefyre_init\\.js", - "website": "http://livefyre.com" - }, - "Liveinternet": { - "cats": [ - "10" - ], - "html": [ - "]*>[^]{0,128}?src\\s*=\\s*['\"]//counter\\.yadro\\.ru/hit(?:;\\S+)?\\?(?:t\\d+\\.\\d+;)?r", - "", - "", - "]*/sites/[a-z\\d]{24}/theme/stylesheets", - "icon": "Locomotive.png", - "implies": [ - "Ruby on Rails", - "MongoDB" - ], - "website": "http://www.locomotivecms.com" - }, - "Logitech Media Server": { - "cats": [ - "22", - "38" - ], - "headers": { - "Server": "Logitech Media Server(?: \\(([\\d\\.]+))?\\;version:\\1" - }, - "icon": "Logitech Media Server.png", - "website": "http://www.mysqueezebox.com" - }, - "Lotus Domino": { - "cats": [ - "22" - ], - "headers": { - "Server": "Lotus-Domino" - }, - "icon": "Lotus Domino.png", - "implies": "Java", - "website": "http://www-01.ibm.com/software/lotus/products/domino" - }, - "Lua": { - "cats": [ - "27" - ], - "headers": { - "X-Powered-By": "\bLua(?: ([\\d.]+))?\\;version:\\1" - }, - "icon": "Lua.png", - "website": "http://www.lua.org" - }, - "Lucene": { - "cats": [ - "34" - ], - "icon": "Lucene.png", - "implies": "Java", - "website": "http://lucene.apache.org/core/" - }, - "Luigi’s Box": { - "cats": [ - "10", - "29" - ], - "env": "^Luigis$", - "icon": "Luigisbox.svg", - "website": "https://www.luigisbox.com" - }, - "M.R. Inc BoxyOS": { - "cats": [ - "28" - ], - "icon": "M.R. Inc.png", - "website": "http://mrincworld.com" - }, - "M.R. Inc SiteFrame": { - "cats": [ - "18" - ], - "headers": { - "Powered-By": "M\\.R\\. Inc SiteFrame" - }, - "icon": "M.R. Inc.png", - "website": "http://mrincworld.com" - }, - "M.R. Inc Webserver": { - "cats": [ - "22" - ], - "headers": { - "Server": "M\\.R\\. Inc Webserver" - }, - "icon": "M.R. Inc.png", - "implies": [ - "M.R. Inc BoxyOS" - ], - "website": "http://mrincworld.com" - }, - "MHonArc": { - "cats": [ - "50" - ], - "html": "\\;version:\\1", - "icon": "mhonarc.png", - "website": "http://www.mhonarc.at" - }, - "MOBOTIX": { - "cats": [ - "39" - ], - "icon": "MOBOTIX.png", - "meta": { - "author": "MOBOTIX AG\\;confidence:40", - "copyright": "MOBOTIX AG\\;confidence:40", - "publisher": "MOBOTIX AG\\;confidence:40" - }, - "url": "control/userimage\\.html\\;confidence:70", - "website": "http://mobotix.com" - }, - "MODX": { - "cats": [ - "1" - ], - "env": "^MODX_MEDIA_PATH$", - "headers": { - "Set-Cookie": "SN5[a-f\\d]{12}", - "X-Powered-By": "^MODX" - }, - "html": [ - "]+>Powered by MODX", - "<(?:link|script)[^>]+assets/snippets/\\;confidence:20", - "]+id=\"ajaxSearch_form\\;confidence:20", - "]+id=\"ajaxSearch_input\\;confidence:20" - ], - "icon": "MODX.png", - "implies": "PHP", - "meta": { - "generator": "MODX[^\\d.]*([\\d.]+)?\\;version:\\1" - }, - "website": "http://modx.com" - }, - "MadAdsMedia": { - "cats": [ - "36" - ], - "env": "^setM(?:Iframe|RefURL)$", - "icon": "MadAdsMedia.png", - "script": "^https?://(?:ads-by|pixel)\\.madadsmedia\\.com/", - "website": "http://madadsmedia.com" - }, - "Magento": { - "cats": [ - "6" - ], - "env": [ - "^(?:Mage|VarienForm)$" - ], - "headers": { - "Set-Cookie": "frontend=\\;confidence:50" - }, - "html": [ - " - - - - -
    -
    - -
    -
    - -
    -
    -

    Options

    - -

    - - - -

    - -
    -

    - -

    -
    -
    -
    - + + + + + Wappalyzer options + + + + + + + + + + + +
    +
    + +
    +
    + +
    +
    +

    Options

    + +

    + + + +

    + + +
    +
    + + From 2ba7b292ebcd0eb8457ac36e0da9857fc52130a5 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Fri, 22 Dec 2017 02:03:31 +0100 Subject: [PATCH 080/166] Vastly reduce the size of Haravan's logo (#1942) --- src/icons/Haravan.png | Bin 1002217 -> 5063 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/icons/Haravan.png b/src/icons/Haravan.png index e5d48e6b20a41b124dff59e71e2f711f2a5500d6..7390fbc65b7fefa67ff37a97e5f2248450625642 100644 GIT binary patch literal 5063 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 literal 1002217 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 From b11296b60f26fb52c30299a13f56ac1b0fe5f6c6 Mon Sep 17 00:00:00 2001 From: Elbert Alias Date: Fri, 22 Dec 2017 12:16:43 +1100 Subject: [PATCH 081/166] Manual merges --- src/apps.json | 30 +++++++++++++++++++++++++----- src/icons/Angular.svg | 2 +- src/icons/NextGEN Gallery.png | Bin 0 -> 2168 bytes 3 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 src/icons/NextGEN Gallery.png diff --git a/src/apps.json b/src/apps.json index 22f3d223e..94c5e1395 100644 --- a/src/apps.json +++ b/src/apps.json @@ -593,13 +593,14 @@ "angular": "", "angular.version.full": "(.*)\\;version:\\1" }, - "icon": "AngularJS.svg", + "html": "]+ng-version=\"([\\d.]+)\">\\;version:\\1", + "icon": "Angular.svg", "script": [ "angular(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", "/([\\d.]+(?:\\-?rc[.\\d]*)*)/angular(?:\\.min)?\\.js\\;version:\\1", "angular.*\\.js" ], - "website": "http://angularjs.org" + "website": "http://angular.io" }, "Apache": { "cats": [ @@ -838,6 +839,7 @@ "cats": [ "47" ], +<<<<<<< HEAD "headers": { "Set-cookie": "FESESSIONID" }, @@ -6252,6 +6254,20 @@ "icon": "New Relic.png", "website": "http://newrelic.com" }, + "NextGEN Gallery": { + "cats": [ + "7" + ], + "icon": "NextGEN Gallery.png", + "html": [ + "\\;version:\\1" + ], + "script": "/nextgen-gallery/js/", + "implies": [ + "WordPress" + ], + "website": "https://www.imagely.com/wordpress-gallery-plugin" + }, "Next.js": { "cats": [ "18", @@ -7344,7 +7360,10 @@ "cats": [ "18" ], - "html": "]+(?:([\\d.])+/)?pure(?:-min)?\\.css\\;version:\\1", + "html": [ + "]+(?:([\\d.])+/)?pure(?:-min)?\\.css\\;version:\\1", + "]+class=\"[^\"]*pure-u-(?:sm-|md-|lg-|xl-)?\\d-\\d" + ], "icon": "Pure CSS.png", "website": "http://purecss.io" }, @@ -9450,6 +9469,7 @@ ], "html": [ " + + + + + + + + + + + From 207dcb1280f01942bd733b3b6998018bef7c0053 Mon Sep 17 00:00:00 2001 From: Hyder B Date: Fri, 5 Jan 2018 07:48:00 +0400 Subject: [PATCH 127/166] Yoast SEO implies WordPress (#1983) --- src/apps.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/apps.json b/src/apps.json index a12ed8798..d7830fdec 100644 --- a/src/apps.json +++ b/src/apps.json @@ -10813,6 +10813,7 @@ " + AMP-Brand-Blue-Icon + Created with Sketch. + + + + + + + \ No newline at end of file From 2a072ae435ac72e8ceb7eed207f38514e2a29c3a Mon Sep 17 00:00:00 2001 From: kkadosh <32873649+kkadosh@users.noreply.github.com> Date: Fri, 26 Jan 2018 00:22:54 +0000 Subject: [PATCH 145/166] Improve hybris detection (#2018) --- src/apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index f54d462dd..89deea50a 100644 --- a/src/apps.json +++ b/src/apps.json @@ -4107,7 +4107,7 @@ "headers": { "Set-Cookie": "_hybris" }, - "html": "<[^>]+/(?:sys_master|hybr|_ui/(?:desktop|common/img/webicons))/", + "html": "<[^>]+/(?:sys_master|hybr|_ui/(?:responsive/)?(?:desktop|common(?:/images|/img)?))/", "icon": "Hybris.png", "implies": "Java", "website": "https://hybris.com" From 381ff7a8b576e8ebf7e20ee6c23fa0a5bfea393b Mon Sep 17 00:00:00 2001 From: Ali Aghaie Date: Fri, 26 Jan 2018 01:23:09 +0100 Subject: [PATCH 146/166] Add Shopfa (#2021) --- src/apps.json | 13 +++++++++++++ src/icons/Shopfa.svg | 19 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/icons/Shopfa.svg diff --git a/src/apps.json b/src/apps.json index 89deea50a..83864bf90 100644 --- a/src/apps.json +++ b/src/apps.json @@ -8505,6 +8505,19 @@ ], "website": "http://shopery.com" }, + "Shopfa": { + "cats": [ + "6" + ], + "js": { + "shopfa": "" + }, + "meta": { + "generator": "^ShopFA ([\\d.]+)$\\;version:\\1" + }, + "icon": "Shopfa.svg", + "website": "https://shopfa.com" + }, "Shopify": { "cats": [ "6" diff --git a/src/icons/Shopfa.svg b/src/icons/Shopfa.svg new file mode 100644 index 000000000..dafcfd5c3 --- /dev/null +++ b/src/icons/Shopfa.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + From 368272fe07d098ab8a42d06a9e30ec9b6e53e3be Mon Sep 17 00:00:00 2001 From: Nick Ford Date: Thu, 25 Jan 2018 19:23:32 -0500 Subject: [PATCH 147/166] watch for data-v in html elements (#2027) --- src/apps.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/apps.json b/src/apps.json index 83864bf90..160c579fa 100644 --- a/src/apps.json +++ b/src/apps.json @@ -10154,6 +10154,7 @@ "js": { "Vue": "" }, + "html": "<[^>]+data-v-", "icon": "Vue.js.png", "script": [ "vue(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", From dcdec477fcc334923cb5b9330c848a0e7d6406c7 Mon Sep 17 00:00:00 2001 From: kkadosh <32873649+kkadosh@users.noreply.github.com> Date: Fri, 26 Jan 2018 00:55:00 +0000 Subject: [PATCH 148/166] Add Zend version detection (#2029) * Add Zend version detection * Fix version detection --- src/apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index 160c579fa..629c61fab 100644 --- a/src/apps.json +++ b/src/apps.json @@ -10923,7 +10923,7 @@ ], "headers": { "Set-Cookie": "ZENDSERVERSESSID", - "X-Powered-By": "Zend" + "X-Powered-By": "Zend(?:Server)?(?:[\\s/]?([0-9.]+))?\\;version:\\1" }, "icon": "Zend.png", "website": "http://zend.com" From 10dd6c6e819e37fb3d28a2bb400c22153f5019db Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Fri, 26 Jan 2018 01:55:27 +0100 Subject: [PATCH 149/166] Improved OpenUI5 logo quality (#2030) --- src/icons/OpenUI5.png | Bin 3223 -> 3620 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/icons/OpenUI5.png b/src/icons/OpenUI5.png index 1a3703019b275c36f88cbfe01bbc95cb94ab89c9..17a2b943e4e08fada6e6cd56c3071f9bfe74e75e 100644 GIT binary patch literal 3620 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 literal 3223 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 dUm!TtC%`Y}e+P;-p~lAnz{1qVq|yja`VV Date: Fri, 26 Jan 2018 02:55:46 +0200 Subject: [PATCH 150/166] Add detection for Transifex live (#2031) --- src/apps.json | 10 ++++++++++ src/icons/transifex.png | Bin 0 -> 3624 bytes 2 files changed, 10 insertions(+) create mode 100644 src/icons/transifex.png diff --git a/src/apps.json b/src/apps.json index 629c61fab..fbde3f84a 100644 --- a/src/apps.json +++ b/src/apps.json @@ -9572,6 +9572,16 @@ "script": "tracker\\.js", "website": "http://trackjs.com" }, + "Transifex": { + "cats": [ + "12" + ], + "icon": "transifex.png", + "js": { + "Transifex.live.lib_version": "(.+)\\;version:\\1" + }, + "website": "https://www.transifex.com" + }, "Translucide": { "cats": [ "1" diff --git a/src/icons/transifex.png b/src/icons/transifex.png new file mode 100644 index 0000000000000000000000000000000000000000..4c90c29a67ec9625c5b029c5896dca2c2c0bb3f3 GIT binary patch literal 3624 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 Date: Fri, 26 Jan 2018 01:56:20 +0100 Subject: [PATCH 151/166] Fix problem in version detection via js variables (#2033) * Fix version detection in js variables (webextension) * Fix version detection in js variables (NPM) --- src/drivers/npm/driver.js | 2 +- src/drivers/webextension/js/inject.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/drivers/npm/driver.js b/src/drivers/npm/driver.js index 399999089..651b6d9c7 100644 --- a/src/drivers/npm/driver.js +++ b/src/drivers/npm/driver.js @@ -246,7 +246,7 @@ class Driver { return parent && parent.hasOwnProperty(property) ? parent[property] : null; }, browser.window); - value = typeof value === 'string' ? value : !!value; + value = typeof value === 'string' || typeof value === 'number' ? value : !!value; if ( value ) { js[appName][chain][index] = value; diff --git a/src/drivers/webextension/js/inject.js b/src/drivers/webextension/js/inject.js index ac3938f2a..26fc00de6 100644 --- a/src/drivers/webextension/js/inject.js +++ b/src/drivers/webextension/js/inject.js @@ -53,7 +53,7 @@ } } - return typeof value === 'string' ? value : !!value; + return typeof value === 'string' || typeof value === 'number' ? value : !!value; } catch(e) { // Fail quietly } From 1eb6ba126475e0915bb8470d3efebde6b9381722 Mon Sep 17 00:00:00 2001 From: kkadosh <32873649+kkadosh@users.noreply.github.com> Date: Fri, 26 Jan 2018 00:56:30 +0000 Subject: [PATCH 152/166] Add an other way to identify redmine (#2034) * Add an other way to identify redmine * Fix regex --- src/apps.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/apps.json b/src/apps.json index fbde3f84a..f8f928c4c 100644 --- a/src/apps.json +++ b/src/apps.json @@ -7842,6 +7842,9 @@ "cats": [ "13" ], + "headers": { + "Set-Cookie": "^_redmine_session" + }, "html": "Powered by ]+Redmine", "icon": "Redmine.png", "implies": "Ruby on Rails", From a7dd5583bfb2539f4d5c65b46bb355113b23e9cb Mon Sep 17 00:00:00 2001 From: jvoisin Date: Fri, 26 Jan 2018 01:56:41 +0100 Subject: [PATCH 153/166] Normalize a bit the implies (#2037) This should close #2036 --- src/apps.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/apps.json b/src/apps.json index f8f928c4c..5c34df9f7 100644 --- a/src/apps.json +++ b/src/apps.json @@ -607,7 +607,7 @@ "ngMaterial": "" }, "icon": "Angular.svg", - "implies": "AngularJS", + "implies": "Angular", "script": [ "/([\\d.]+(?:\\-?rc[.\\d]*)*)/angular-material(?:\\.min)?\\.js\\;version:\\1", "angular-material.*\\.js" @@ -3256,7 +3256,7 @@ "icon": "Gatsby.svg", "implies": [ "React", - "Webpack" + "webpack" ], "website": "https://www.gatsbyjs.org/" }, @@ -3624,7 +3624,7 @@ "Set-Cookie": "cnv_session" }, "icon": "CNV.png", - "implies": "laravel", + "implies": "Laravel", "website": "https://cnv.vn" }, "Google Tag Manager": { @@ -5071,7 +5071,7 @@ "Set-Cookie": "botble_session" }, "icon": "mypage-platform.png", - "implies": "laravel", + "implies": "Laravel", "website": "https://www.mypage.vn" }, "Lazy.js": { @@ -5650,7 +5650,7 @@ "implies": [ "MongoDB", "Express", - "AngularJS" + "Angular" ], "website": "http://mean.io" }, @@ -6146,7 +6146,7 @@ "icon": "MotoCMS.svg", "implies": [ "PHP", - "AngularJS", + "Angular", "jQuery" ], "script": ".*\\/mt-includes\\/[asetj]{2,6}\\/.*\\.js.*", @@ -7510,7 +7510,7 @@ "icon": "Proximis Omnichannel.png", "implies": [ "PHP", - "AngularJS" + "Angular" ], "meta": { "generator": "Proximis Omnichannel" @@ -7784,7 +7784,7 @@ }, "icon": "Rayo.png", "implies": [ - "AngularJS", + "Angular", "Microsoft ASP.NET" ], "meta": { @@ -9301,7 +9301,7 @@ "icon": "Taiga.png", "implies": [ "Django", - "AngularJS" + "Angular" ], "website": "http://taiga.io" }, From c5f7058537abb7a9021d38d617e94d996cf7bc63 Mon Sep 17 00:00:00 2001 From: Sarun Intaralawan Date: Fri, 26 Jan 2018 08:03:53 +0700 Subject: [PATCH 154/166] Angular root component can have different selector (#2007) --- src/apps.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/apps.json b/src/apps.json index 5c34df9f7..2bb53e9c2 100644 --- a/src/apps.json +++ b/src/apps.json @@ -630,6 +630,7 @@ "angular": "", "angular.version.full": "(.*)\\;version:\\1" }, + "html": "<[^>]+ ng-version=\"([\\d.]+)\">\\;version:\\1" "icon": "Angular.svg", "script": [ "angular(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", From 9965e64f7604bf65e04250d6b88ee7aedf3d1396 Mon Sep 17 00:00:00 2001 From: Sarun Intaralawan Date: Fri, 26 Jan 2018 10:02:46 +0700 Subject: [PATCH 155/166] Angular and AngularJS is not the same (#2041) According to [Angular branding guideline](https://angular.io/presskit#brand-names), AngularJS is referred to 1.x versions and Angular is referred to 2+ versions. This reverts parts of #2037 --- src/apps.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/apps.json b/src/apps.json index 2bb53e9c2..fb4cbc0bb 100644 --- a/src/apps.json +++ b/src/apps.json @@ -607,7 +607,7 @@ "ngMaterial": "" }, "icon": "Angular.svg", - "implies": "Angular", + "implies": "AngularJS", "script": [ "/([\\d.]+(?:\\-?rc[.\\d]*)*)/angular-material(?:\\.min)?\\.js\\;version:\\1", "angular-material.*\\.js" @@ -6147,7 +6147,7 @@ "icon": "MotoCMS.svg", "implies": [ "PHP", - "Angular", + "AngularJS", "jQuery" ], "script": ".*\\/mt-includes\\/[asetj]{2,6}\\/.*\\.js.*", @@ -7511,7 +7511,7 @@ "icon": "Proximis Omnichannel.png", "implies": [ "PHP", - "Angular" + "AngularJS" ], "meta": { "generator": "Proximis Omnichannel" @@ -7785,7 +7785,7 @@ }, "icon": "Rayo.png", "implies": [ - "Angular", + "AngularJS", "Microsoft ASP.NET" ], "meta": { @@ -9302,7 +9302,7 @@ "icon": "Taiga.png", "implies": [ "Django", - "Angular" + "AngularJS" ], "website": "http://taiga.io" }, @@ -12403,4 +12403,4 @@ "priority": "8" } } -} \ No newline at end of file +} From 900ef3fd7c2e7c810bf3afd4e2e7b7807a2caff2 Mon Sep 17 00:00:00 2001 From: kkadosh <32873649+kkadosh@users.noreply.github.com> Date: Fri, 26 Jan 2018 22:28:38 +0000 Subject: [PATCH 156/166] Fix forgotten comma that prevent json loading (#2043) --- src/apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index fb4cbc0bb..d9a70ac7c 100644 --- a/src/apps.json +++ b/src/apps.json @@ -630,7 +630,7 @@ "angular": "", "angular.version.full": "(.*)\\;version:\\1" }, - "html": "<[^>]+ ng-version=\"([\\d.]+)\">\\;version:\\1" + "html": "<[^>]+ ng-version=\"([\\d.]+)\">\\;version:\\1", "icon": "Angular.svg", "script": [ "angular(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", From 6d7c9a351285af9d7b3ddf0fffc667bfb9ac85ba Mon Sep 17 00:00:00 2001 From: Elbert Alias <77259+AliasIO@users.noreply.github.com> Date: Sun, 28 Jan 2018 11:11:47 +1100 Subject: [PATCH 157/166] Fix Ant Design, Sqreen, update Tilda icon, fix bookmarklet --- src/apps.json | 27 ++- src/drivers/bookmarklet/driver.js | 21 +- src/drivers/npm/browsers/zombie.js | 313 +++++++++++++++++++++++++++++ src/icons/Ant Design.svg | 43 ++++ src/icons/Sqreen.png | Bin 0 -> 3961 bytes src/icons/Tilda.svg | 18 ++ src/icons/tilda.png | Bin 27352 -> 0 bytes 7 files changed, 411 insertions(+), 11 deletions(-) create mode 100644 src/drivers/npm/browsers/zombie.js create mode 100644 src/icons/Ant Design.svg create mode 100644 src/icons/Sqreen.png create mode 100644 src/icons/Tilda.svg delete mode 100644 src/icons/tilda.png diff --git a/src/apps.json b/src/apps.json index 07c2025ae..3024e0e9c 100644 --- a/src/apps.json +++ b/src/apps.json @@ -1016,6 +1016,31 @@ ], "website": "http://www.ozerov.de/bigdump.php" }, + "Ant Design": { + "cats": [ + "12" + ], + "implies": [ + "React" + ], + "icon": "Ant Design.svg", + "env": "^antd$", + "html": [ + "<(?:div|button) class=\"ant-(?:btn|col|row|layout|breadcrumb|menu|pagination|steps|select|cascader|checkbox|calendar|form|input-number|input|mention|rate|radio|slider|switch|tree-select|time-picker|transfer|upload|avatar|badge|card|carousel|collapse|list|popover|tooltip|table|tabs|tag|timeline|tree|alert|modal|message|notification|progress|popconfirm|spin|anchor|back-top|divider)", + "]* href=[^>]+tilda(?:cdn|\\.ws|-blocks)", "script": "tilda(?:cdn|\\.ws|-blocks)", "website": "https://tilda.cc" diff --git a/src/drivers/bookmarklet/driver.js b/src/drivers/bookmarklet/driver.js index 1bcb3783c..7725b9a5f 100644 --- a/src/drivers/bookmarklet/driver.js +++ b/src/drivers/bookmarklet/driver.js @@ -6,9 +6,10 @@ /** global: XMLHttpRequest */ (function() { + wappalyzer.driver.document = document; + const container = document.getElementById('wappalyzer-container'); - const domain = top.location.host; - const url = top.location.href.replace(/#.*$/, ''); + const url = wappalyzer.parseUrl(top.location.href); const hasOwn = Object.prototype.hasOwnProperty; /** @@ -19,7 +20,7 @@ }; function getPageContent() { - wappalyzer.log('func: getPageContent'); + wappalyzer.log('func: getPageContent', 'driver'); var env = []; @@ -32,7 +33,7 @@ .filter(s => s.src) .map(s => s.src); - wappalyzer.analyze(domain, url, { + wappalyzer.analyze(url, { html: document.documentElement.innerHTML, env: env, scripts: scripts @@ -40,7 +41,7 @@ } function getResponseHeaders() { - wappalyzer.log('func: getResponseHeaders'); + wappalyzer.log('func: getResponseHeaders', 'driver'); var xhr = new XMLHttpRequest(); @@ -51,7 +52,7 @@ var headers = xhr.getAllResponseHeaders().split("\n"); if ( headers.length > 0 && headers[0] != '' ) { - wappalyzer.log('responseHeaders: ' + xhr.getAllResponseHeaders()); + wappalyzer.log('responseHeaders: ' + xhr.getAllResponseHeaders(), 'driver'); var responseHeaders = {}; @@ -69,7 +70,7 @@ } }); - wappalyzer.analyze(domain, url, { + wappalyzer.analyze(url, { headers: responseHeaders }); } @@ -83,7 +84,7 @@ * Display apps */ wappalyzer.driver.displayApps = detected => { - wappalyzer.log('func: diplayApps'); + wappalyzer.log('func: diplayApps', 'driver'); var first = true; var app; @@ -104,14 +105,14 @@ var version = detected[app].version, confidence = detected[app].confidence; - + html += '
    ' + '' + '' + ' ' + app + '' + - ( version ? ' ' + version : '' ) + ( confidence < 100 ? ' (' + confidence + '% sure)' : '' ) + + ( version ? ' ' + version : '' ) + ( confidence < 100 ? ' (' + confidence + '% sure)' : '' ) + ''; for ( let i in wappalyzer.apps[app].cats ) { diff --git a/src/drivers/npm/browsers/zombie.js b/src/drivers/npm/browsers/zombie.js new file mode 100644 index 000000000..399999089 --- /dev/null +++ b/src/drivers/npm/browsers/zombie.js @@ -0,0 +1,313 @@ +'use strict'; + +const Wappalyzer = require('./wappalyzer'); +const request = require('request'); +const url = require('url'); +const fs = require('fs'); +const Browser = require('zombie'); + +const json = JSON.parse(fs.readFileSync(__dirname + '/apps.json')); + +const extensions = /^([^.]+$|\.(asp|aspx|cgi|htm|html|jsp|php)$)/; + +class Driver { + constructor(pageUrl, options) { + this.options = Object.assign({}, { + chunkSize: 5, + debug: false, + delay: 500, + maxDepth: 3, + maxUrls: 10, + maxWait: 5000, + recursive: false, + userAgent: 'Mozilla/5.0 (compatible; Wappalyzer)', + }, options || {}); + + this.options.debug = Boolean(this.options.debug); + this.options.delay = this.options.recursive ? parseInt(this.options.delay, 10) : 0; + this.options.maxDepth = parseInt(this.options.maxDepth, 10); + this.options.maxUrls = parseInt(this.options.maxUrls, 10); + this.options.maxWait = parseInt(this.options.maxWait, 10); + this.options.recursive = Boolean(this.options.recursive); + + this.origPageUrl = url.parse(pageUrl); + this.analyzedPageUrls = []; + this.apps = []; + this.meta = {}; + + this.wappalyzer = new Wappalyzer(); + + this.wappalyzer.apps = json.apps; + this.wappalyzer.categories = json.categories; + + this.wappalyzer.parseJsPatterns(); + + this.wappalyzer.driver.log = (message, source, type) => this.log(message, source, type); + this.wappalyzer.driver.displayApps = (detected, meta, context) => this.displayApps(detected, meta, context); + } + + analyze() { + this.time = { + start: new Date().getTime(), + last: new Date().getTime(), + } + + return this.crawl(this.origPageUrl); + } + + log(message, source, type) { + this.options.debug && console.log('[wappalyzer ' + type + ']', '[' + source + ']', message); + } + + displayApps(detected, meta) { + this.meta = meta; + + Object.keys(detected).forEach(appName => { + const app = detected[appName]; + + var categories = []; + + app.props.cats.forEach(id => { + var category = {}; + + category[id] = json.categories[id].name; + + categories.push(category) + }); + + if ( !this.apps.some(detectedApp => detectedApp.name === app.name) ) { + this.apps.push({ + name: app.name, + confidence: app.confidenceTotal.toString(), + version: app.version, + icon: app.props.icon || 'default.svg', + website: app.props.website, + categories + }); + } + }); + } + + fetch(pageUrl, index, depth) { + // Return when the URL is a duplicate or maxUrls has been reached + if ( this.analyzedPageUrls.indexOf(pageUrl.href) !== -1 || this.analyzedPageUrls.length >= this.options.maxUrls ) { + return Promise.resolve(); + } + + this.analyzedPageUrls.push(pageUrl.href); + + const timerScope = { + last: new Date().getTime() + }; + + this.timer('fetch; url: ' + pageUrl.href + '; depth: ' + depth + '; delay: ' + ( this.options.delay * index ) + 'ms', timerScope); + + return new Promise(resolve => this.sleep(this.options.delay * index).then(() => this.visit(pageUrl, timerScope, resolve))); + } + + visit(pageUrl, timerScope, resolve) { + const browser = new Browser({ + silent: true, + userAgent: this.options.userAgent, + waitDuration: this.options.maxWait, + }); + + this.timer('browser.visit start; url: ' + pageUrl.href, timerScope); + + browser.visit(pageUrl.href, () => { + this.timer('browser.visit end; url: ' + pageUrl.href, timerScope); + + if ( !this.responseOk(browser, pageUrl) ) { + return resolve(); + } + + const headers = this.getHeaders(browser); + const html = this.getHtml(browser); + const scripts = this.getScripts(browser); + const js = this.getJs(browser); + + this.wappalyzer.analyze(pageUrl, { + headers, + html, + scripts, + js + }); + + const links = Array.from(browser.document.getElementsByTagName('a')) + .filter(link => link.protocol === 'http:' || link.protocol === 'https:') + .filter(link => link.hostname === this.origPageUrl.hostname) + .filter(link => extensions.test(link.pathname)) + .map(link => { link.hash = ''; return url.parse(link.href) }); + + return resolve(links); + }); + } + + responseOk(browser, pageUrl) { + // Validate response + const resource = browser.resources.length ? browser.resources.filter(resource => resource.response).shift() : null; + + if ( !resource ) { + this.wappalyzer.log('No response from server; url: ' + pageUrl.href, 'driver', 'error'); + + return false; + } + + if ( resource.response.status !== 200 ) { + this.wappalyzer.log('Response was not OK; status: ' + resource.response.status + ' ' + resource.response.statusText + '; url: ' + pageUrl.href, 'driver', 'error'); + + return false; + } + + const headers = this.getHeaders(browser); + + // Validate content type + const contentType = headers.hasOwnProperty('content-type') ? headers['content-type'].shift() : null; + + if ( !contentType || !/\btext\/html\b/.test(contentType) ) { + this.wappalyzer.log('Skipping; url: ' + pageUrl.href + '; content type: ' + contentType, 'driver'); + + this.analyzedPageUrls.splice(this.analyzedPageUrls.indexOf(pageUrl.href), 1); + + return false; + } + + // Validate document + if ( !browser.document || !browser.document.documentElement ) { + this.wappalyzer.log('No HTML document; url: ' + pageUrl.href, 'driver', 'error'); + + return false; + } + + return true; + } + + getHeaders(browser) { + const headers = {}; + + const resource = browser.resources.length ? browser.resources.filter(resource => resource.response).shift() : null; + + if ( resource ) { + resource.response.headers._headers.forEach(header => { + if ( !headers[header[0]] ){ + headers[header[0]] = []; + } + + headers[header[0]].push(header[1]); + }); + } + + return headers; + } + + getHtml(browser) { + let html = ''; + + try { + html = browser.html(); + + if ( html.length > 50000 ) { + html = html.substring(0, 25000) + html.substring(html.length - 25000, html.length); + } + } catch ( error ) { + this.wappalyzer.log(error.message, 'browser', 'error'); + } + + return html; + } + + getScripts(browser) { + if ( !browser.document || !browser.document.scripts ) { + return []; + } + + const scripts = Array.prototype.slice + .apply(browser.document.scripts) + .filter(script => script.src) + .map(script => script.src); + + return scripts; + } + + getJs(browser) { + const patterns = this.wappalyzer.jsPatterns; + const js = {}; + + Object.keys(patterns).forEach(appName => { + js[appName] = {}; + + Object.keys(patterns[appName]).forEach(chain => { + js[appName][chain] = {}; + + patterns[appName][chain].forEach((pattern, index) => { + const properties = chain.split('.'); + + let value = properties.reduce((parent, property) => { + return parent && parent.hasOwnProperty(property) ? parent[property] : null; + }, browser.window); + + value = typeof value === 'string' ? value : !!value; + + if ( value ) { + js[appName][chain][index] = value; + } + }); + }); + }); + + return js; + } + + crawl(pageUrl, index, depth = 1) { + pageUrl.canonical = pageUrl.protocol + '//' + pageUrl.host + pageUrl.pathname; + + return new Promise(resolve => { + this.fetch(pageUrl, index, depth) + .catch(() => {}) + .then(links => { + if ( links && Boolean(this.options.recursive) && depth < this.options.maxDepth ) { + return this.chunk(links.slice(0, this.options.maxUrls), depth + 1); + } else { + return Promise.resolve(); + } + }) + .then(() => { + resolve({ + urls: this.analyzedPageUrls, + applications: this.apps, + meta: this.meta + }); + }); + }); + } + + chunk(links, depth, chunk = 0) { + if ( links.length === 0 ) { + return Promise.resolve(); + } + + const chunked = links.splice(0, this.options.chunkSize); + + return new Promise(resolve => { + Promise.all(chunked.map((link, index) => this.crawl(link, index, depth))) + .then(() => this.chunk(links, depth, chunk + 1)) + .then(() => resolve()); + }); + } + + sleep(ms) { + return ms ? new Promise(resolve => setTimeout(resolve, ms)) : Promise.resolve(); + } + + timer(message, scope) { + const time = new Date().getTime(); + const sinceStart = ( Math.round(( time - this.time.start ) / 10) / 100) + 's'; + const sinceLast = ( Math.round(( time - scope.last ) / 10) / 100) + 's'; + + this.wappalyzer.log('[timer] ' + message + '; lapsed: ' + sinceLast + ' / ' + sinceStart, 'driver'); + + scope.last = time; + } +}; + +module.exports = Driver; diff --git a/src/icons/Ant Design.svg b/src/icons/Ant Design.svg new file mode 100644 index 000000000..e9f8c2a9d --- /dev/null +++ b/src/icons/Ant Design.svg @@ -0,0 +1,43 @@ + + + + Group 28 Copy 5 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/Sqreen.png b/src/icons/Sqreen.png new file mode 100644 index 0000000000000000000000000000000000000000..c4e1000e61ef21cd111753433c82be6f764606ac GIT binary patch literal 3961 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 TZjW6f00000NkvXXu0mjf^8TJ0 literal 0 HcmV?d00001 diff --git a/src/icons/Tilda.svg b/src/icons/Tilda.svg new file mode 100644 index 000000000..d3c193bcb --- /dev/null +++ b/src/icons/Tilda.svg @@ -0,0 +1,18 @@ + + + + Page 1 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/tilda.png b/src/icons/tilda.png deleted file mode 100644 index 8d942ef577dc5daa7c22939acb9401a5621d2195..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27352 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 From 8a5bc035cedce1d0f52eb07c2796646c7f32a0a5 Mon Sep 17 00:00:00 2001 From: Elbert Alias <77259+AliasIO@users.noreply.github.com> Date: Sun, 28 Jan 2018 13:31:21 +1100 Subject: [PATCH 158/166] Add ability to pin a category --- schema.json | 6 +- src/apps.json | 2434 ++++++++--------- src/drivers/npm/browsers/zombie.js | 313 --- .../webextension/_locales/de/messages.json | 1 + .../webextension/_locales/el/messages.json | 1 + .../webextension/_locales/en/messages.json | 7 +- .../webextension/_locales/es/messages.json | 1 + .../webextension/_locales/fr/messages.json | 1 + .../webextension/_locales/gr/messages.json | 1 + .../webextension/_locales/id/messages.json | 1 + .../webextension/_locales/it/messages.json | 1 + .../webextension/_locales/pl/messages.json | 1 + .../webextension/_locales/pt/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 + .../webextension/_locales/zh_TW/messages.json | 1 + src/drivers/webextension/css/popup.css | 36 +- .../webextension/images/pin-active.svg | 14 + src/drivers/webextension/images/pin.svg | 14 + src/drivers/webextension/js/driver.js | 106 +- src/drivers/webextension/js/popup.js | 62 +- src/drivers/webextension/yarn.lock | 6 +- yarn.lock | 31 +- 28 files changed, 1434 insertions(+), 1612 deletions(-) delete mode 100644 src/drivers/npm/browsers/zombie.js create mode 100644 src/drivers/webextension/images/pin-active.svg create mode 100644 src/drivers/webextension/images/pin.svg diff --git a/schema.json b/schema.json index a4685bd59..e66f71303 100644 --- a/schema.json +++ b/schema.json @@ -16,7 +16,7 @@ "required": true, "properties": { "priority": { - "type": "string" + "type": "number" }, "name": { "type": "string" @@ -34,7 +34,7 @@ "cats": { "type": "array", "items": { - "type": "string" + "type": "number" }, "required": true }, @@ -106,4 +106,4 @@ } } } -} \ No newline at end of file +} diff --git a/src/apps.json b/src/apps.json index b8deca396..2efa81847 100644 --- a/src/apps.json +++ b/src/apps.json @@ -3,7 +3,7 @@ "apps": { "1&1": { "cats": [ - "6" + 6 ], "icon": "1and1.svg", "implies": "PHP", @@ -12,7 +12,7 @@ }, "Google Analytics Enhanced eCommerce": { "cats": [ - "10" + 10 ], "js": { "gaplugins.EC": "" @@ -23,7 +23,7 @@ }, "1C-Bitrix": { "cats": [ - "1" + 1 ], "headers": { "Set-Cookie": "^BITRIX_", @@ -37,7 +37,7 @@ }, "animate.css": { "cats": [ - "18" + 18 ], "html": [ "]+(?:/([\\d.]+)/)?animate\\.(?:min\\.)?css\\;version:\\1" @@ -46,7 +46,7 @@ }, "2z Project": { "cats": [ - "1" + 1 ], "icon": "2z Project.png", "meta": { @@ -56,7 +56,7 @@ }, "3DM": { "cats": [ - "19" + 19 ], "html": "3ware 3DM([\\d\\.]+)?\\;version:\\1", "icon": "3DM.png", @@ -65,8 +65,8 @@ }, "3dCart": { "cats": [ - "1", - "6" + 1, + 6 ], "headers": { "Set-Cookie": "3dvisit", @@ -78,7 +78,7 @@ }, "3ware": { "cats": [ - "22" + 22 ], "headers": { "Server": "3ware\\/?([\\d\\.]+)?\\;version:\\1" @@ -88,7 +88,7 @@ }, "AD EBiS": { "cats": [ - "10" + 10 ], "html": [ "<!-- EBiS contents tag", @@ -101,7 +101,7 @@ }, "Accelerated Mobile Pages": { "cats": [ - "12" + 12 ], "html": "<html[^>]* (?:amp|⚡)", "icon": "Accelerated-Mobile-Pages.svg", @@ -109,8 +109,8 @@ }, "Amber": { "cats": [ - "18", - "22" + 18, + 22 ], "headers": { "X-Powered-By": "^Amber$" @@ -120,7 +120,7 @@ }, "AMPcms": { "cats": [ - "1" + 1 ], "js": { "amp_js_init": "" @@ -135,7 +135,7 @@ }, "AOLserver": { "cats": [ - "22" + 22 ], "headers": { "Server": "AOLserver/?([\\d.]+)?\\;version:\\1" @@ -145,7 +145,7 @@ }, "AT Internet Analyzer": { "cats": [ - "10" + 10 ], "js": { "xtsite": "", @@ -156,7 +156,7 @@ }, "AT Internet XiTi": { "cats": [ - "10" + 10 ], "js": { "xt_click": "" @@ -167,7 +167,7 @@ }, "ATEN": { "cats": [ - "22" + 22 ], "headers": { "Server": "ATEN HTTP Server(?:\\(?V?([\\d\\.]+)\\)?)?\\;version:\\1" @@ -177,7 +177,7 @@ }, "AWStats": { "cats": [ - "10" + 10 ], "icon": "AWStats.png", "implies": "Perl", @@ -188,7 +188,7 @@ }, "Accessible Portal": { "cats": [ - "1" + 1 ], "icon": "Accessible Portal.png", "implies": "PHP", @@ -199,7 +199,7 @@ }, "Act-On": { "cats": [ - "32" + 32 ], "js": { "ActOn": "" @@ -209,7 +209,7 @@ }, "Prebid": { "cats": [ - "36" + 36 ], "icon": "Prebid.png", "js": { @@ -224,7 +224,7 @@ }, "AdInfinity": { "cats": [ - "36" + 36 ], "icon": "AdInfinity.png", "script": "adinfinity\\.com\\.au", @@ -232,7 +232,7 @@ }, "AdRiver": { "cats": [ - "36" + 36 ], "js": { "adriver": "" @@ -244,7 +244,7 @@ }, "AdRoll": { "cats": [ - "36" + 36 ], "js": { "adroll_adv_id": "", @@ -256,7 +256,7 @@ }, "Adcash": { "cats": [ - "36" + 36 ], "js": { "ac_bgclick_URL": "", @@ -274,7 +274,7 @@ }, "AddShoppers": { "cats": [ - "5" + 5 ], "icon": "AddShoppers.png", "script": "cdn\\.shop\\.pe/widget/", @@ -282,7 +282,7 @@ }, "AddThis": { "cats": [ - "5" + 5 ], "js": { "addthis": "" @@ -293,7 +293,7 @@ }, "AddToAny": { "cats": [ - "5" + 5 ], "js": { "a2apage_init": "" @@ -304,7 +304,7 @@ }, "Adminer": { "cats": [ - "3" + 3 ], "html": [ "Adminer</a> <span class=\"version\">([\\d.]+)</span>\\;version:\\1", @@ -316,7 +316,7 @@ }, "Adnegah": { "cats": [ - "36" + 36 ], "headers": { "X-Advertising-By": "adnegah\\.net" @@ -328,7 +328,7 @@ }, "Adobe ColdFusion": { "cats": [ - "18" + 18 ], "js": { "_cfEmails": "" @@ -345,7 +345,7 @@ }, "Adobe Experience Manager": { "cats": [ - "1" + 1 ], "html": [ "<div class=\"[^\"]*parbase", @@ -358,7 +358,7 @@ }, "Adobe GoLive": { "cats": [ - "20" + 20 ], "icon": "Adobe GoLive.png", "meta": { @@ -368,7 +368,7 @@ }, "Adobe Muse": { "cats": [ - "20" + 20 ], "icon": "Adobe Muse.svg", "meta": { @@ -378,7 +378,7 @@ }, "Adobe RoboHelp": { "cats": [ - "4" + 4 ], "js": { "gbWhVer": "", @@ -396,7 +396,7 @@ }, "Advanced Web Stats": { "cats": [ - "10" + 10 ], "html": "aws\\.src = [^<]+caphyon-analytics", "icon": "Advanced Web Stats.png", @@ -405,7 +405,7 @@ }, "Advert Stream": { "cats": [ - "36" + 36 ], "js": { "advst_is_above_the_fold": "" @@ -416,7 +416,7 @@ }, "Adzerk": { "cats": [ - "36" + 36 ], "js": { "ados": "", @@ -429,7 +429,7 @@ }, "Aegea": { "cats": [ - "11" + 11 ], "headers": { "X-Powered-By": "^E2 Aegea v(\\d+)$\\;version:\\1" @@ -443,7 +443,7 @@ }, "AfterBuy": { "cats": [ - "6" + 6 ], "html": [ "<dd>This OnlineStore is brought to you by ViA-Online GmbH Afterbuy\\. Information and contribution at https://www\\.afterbuy\\.de</dd>" @@ -454,7 +454,7 @@ }, "Afosto": { "cats": [ - "6" + 6 ], "headers": { "X-Powered-By": "Afosto SaaS BV" @@ -464,7 +464,7 @@ }, "Aircall": { "cats": [ - "52" + 52 ], "icon": "aircall.png", "script": "^https?://cdn\\.aircall\\.io/", @@ -472,7 +472,7 @@ }, "Airee": { "cats": [ - "31" + 31 ], "headers": { "Server": "Airee" @@ -482,7 +482,7 @@ }, "Akamai": { "cats": [ - "31" + 31 ], "headers": { "X-Akamai-Transformed": "" @@ -492,8 +492,8 @@ }, "Akka HTTP": { "cats": [ - "18", - "22" + 18, + 22 ], "headers": { "Server": "akka-http(?:/([\\d.]+))?\\;version:\\1" @@ -503,7 +503,7 @@ }, "Algolia Realtime Search": { "cats": [ - "29" + 29 ], "js": { "AlgoliaSearch": "" @@ -513,7 +513,7 @@ }, "Allegro RomPager": { "cats": [ - "22" + 22 ], "headers": { "Server": "Allegro-Software-RomPager(?:/([\\d.]+))?\\;version:\\1" @@ -523,7 +523,7 @@ }, "AlloyUI": { "cats": [ - "12" + 12 ], "js": { "AUI": "" @@ -538,7 +538,7 @@ }, "Amaya": { "cats": [ - "20" + 20 ], "icon": "Amaya.png", "meta": { @@ -548,7 +548,7 @@ }, "Amazon Cloudfront": { "cats": [ - "31" + 31 ], "headers": { "X-Amz-Cf-Id": "" @@ -558,7 +558,7 @@ }, "Amazon EC2": { "cats": [ - "22" + 22 ], "headers": { "Server": "\\(Amazon\\)" @@ -568,7 +568,7 @@ }, "Amazon S3": { "cats": [ - "19" + 19 ], "headers": { "Server": "AmazonS3" @@ -578,7 +578,7 @@ }, "Ametys": { "cats": [ - "1" + 1 ], "icon": "Ametys.png", "implies": "Java", @@ -590,7 +590,7 @@ }, "Amiro.CMS": { "cats": [ - "1" + 1 ], "icon": "Amiro.CMS.png", "implies": "PHP", @@ -601,7 +601,7 @@ }, "Angular Material": { "cats": [ - "18" + 18 ], "js": { "ngMaterial": "" @@ -616,7 +616,7 @@ }, "Angular": { "cats": [ - "12" + 12 ], "html": "<app[^>]+ng-version=\"([\\d.]+)\">\\;version:\\1", "icon": "Angular.svg", @@ -624,7 +624,7 @@ }, "AngularJS": { "cats": [ - "12" + 12 ], "js": { "angular": "", @@ -641,7 +641,7 @@ }, "Apache": { "cats": [ - "22" + 22 ], "headers": { "Server": "(?:Apache(?:$|/([\\d.]+)|[^/-])|(?:^|\\b)HTTPD)\\;version:\\1" @@ -651,7 +651,7 @@ }, "Apache HBase": { "cats": [ - "34" + 34 ], "html": "<style[^>]+static/hbase", "icon": "Apache HBase.png", @@ -660,7 +660,7 @@ }, "Apache Hadoop": { "cats": [ - "34" + 34 ], "html": "<style[^>]+static/hadoop", "icon": "Apache Hadoop.svg", @@ -668,7 +668,7 @@ }, "Apache JSPWiki": { "cats": [ - "8" + 8 ], "html": "<html[^>]* xmlns:jspwiki=", "icon": "Apache JSPWiki.png", @@ -679,7 +679,7 @@ }, "Apache Tomcat": { "cats": [ - "22" + 22 ], "headers": { "Server": "^Apache-Coyote(/1\\.1)?$\\;version:\\1?4.1+:", @@ -691,7 +691,7 @@ }, "Apache Traffic Server": { "cats": [ - "22" + 22 ], "headers": { "Server": "ATS/?([\\d.]+)?\\;version:\\1" @@ -701,7 +701,7 @@ }, "Apache Wicket": { "cats": [ - "18" + 18 ], "js": { "Wicket": "" @@ -712,7 +712,7 @@ }, "ApexPages": { "cats": [ - "51" + 51 ], "headers": { "X-Powered-By": "Salesforce\\.com ApexPages" @@ -723,7 +723,7 @@ }, "Apostrophe CMS": { "cats": [ - "1" + 1 ], "html": "<[^>]+data-apos-refreshable[^>]", "icon": "apostrophecms.svg", @@ -732,7 +732,7 @@ }, "AppNexus": { "cats": [ - "36" + 36 ], "html": "<(?:iframe|img)[^>]+adnxs\\.(?:net|com)", "icon": "AppNexus.svg", @@ -741,7 +741,7 @@ }, "Arastta": { "cats": [ - "6" + 6 ], "excludes": "OpenCart", "headers": { @@ -756,7 +756,7 @@ }, "Arc Forum": { "cats": [ - "2" + 2 ], "html": "ping\\.src = node\\.href;\\s+[^>]+\\s+}\\s+</script>", "icon": "Arc Forum.png", @@ -764,7 +764,7 @@ }, "ArcGIS API for JavaScript": { "cats": [ - "35" + 35 ], "script": [ "js\\.arcgis\\.com", @@ -775,7 +775,7 @@ }, "Artifactory": { "cats": [ - "47" + 47 ], "js": { "ArtifactoryUpdates": "" @@ -791,7 +791,7 @@ }, "Artifactory Web Server": { "cats": [ - "22" + 22 ], "headers": { "Server": "Artifactory(?:/([\\d.]+))?\\;version:\\1" @@ -804,7 +804,7 @@ }, "ArvanCloud": { "cats": [ - "31" + 31 ], "js": { "ArvanCloud": "" @@ -817,9 +817,9 @@ }, "AsciiDoc": { "cats": [ - "1", - "20", - "27" + 1, + 20, + 27 ], "js": { "asciidoc": "" @@ -832,7 +832,7 @@ }, "Asciinema": { "cats": [ - "14" + 14 ], "js": { "asciinema": "" @@ -844,7 +844,7 @@ }, "Atlassian Bitbucket": { "cats": [ - "47" + 47 ], "js": { "bitbucket": "" @@ -859,7 +859,7 @@ }, "Atlassian Confluence": { "cats": [ - "8" + 8 ], "headers": { "X-Confluence-Request-Time": "" @@ -874,7 +874,7 @@ }, "Atlassian FishEye": { "cats": [ - "47" + 47 ], "headers": { "Set-cookie": "FESESSIONID" @@ -885,7 +885,7 @@ }, "Atlassian Jira": { "cats": [ - "13" + 13 ], "js": { "jira": "" @@ -901,8 +901,8 @@ }, "Atlassian Jira Issue Collector": { "cats": [ - "13", - "47" + 13, + 47 ], "icon": "Atlassian Jira.svg", "script": [ @@ -913,7 +913,7 @@ }, "Aurelia": { "cats": [ - "12" + 12 ], "html": [ "<[^>]+aurelia-app=[^>]", @@ -928,7 +928,7 @@ }, "Avangate": { "cats": [ - "6" + 6 ], "js": { "avng8_": "", @@ -941,7 +941,7 @@ }, "BEM": { "cats": [ - "12" + 12 ], "html": "<[^>]+data-bem", "icon": "BEM.png", @@ -949,7 +949,7 @@ }, "BIGACE": { "cats": [ - "1" + 1 ], "html": "(?:Powered by <a href=\"[^>]+BIGACE|<!--\\s+Site is running BIGACE)", "icon": "BIGACE.png", @@ -961,8 +961,8 @@ }, "Bablic": { "cats": [ - "3", - "9" + 3, + 9 ], "website": "https://www.bablic.com/", "js": { @@ -972,7 +972,7 @@ }, "Backbone.js": { "cats": [ - "12" + 12 ], "js": { "Backbone": "", @@ -985,7 +985,7 @@ }, "Backdrop": { "cats": [ - "1" + 1 ], "js": { "Backdrop": "" @@ -1000,8 +1000,8 @@ }, "Banshee": { "cats": [ - "1", - "18" + 1, + 18 ], "html": "Built upon the <a href=\"[^>]+banshee-php\\.org/\">[a-z]+</a>(?:v([\\d.]+))?\\;version:\\1", "icon": "Banshee.png", @@ -1013,7 +1013,7 @@ }, "BaseHTTP": { "cats": [ - "22" + 22 ], "headers": { "Server": "BaseHTTP\\/?([\\d\\.]+)?\\;version:\\1" @@ -1024,7 +1024,7 @@ }, "BigDump": { "cats": [ - "3" + 3 ], "html": "<!-- <h1>BigDump: Staggered MySQL Dump Importer ver\\. ([\\d.b]+)\\;version:\\1", "implies": [ @@ -1035,7 +1035,7 @@ }, "Ant Design": { "cats": [ - "12" + 12 ], "implies": [ "React" @@ -1050,7 +1050,7 @@ }, "Sqreen": { "cats": [ - "19" + 19 ], "headers": { "X-Protected-By": "^Sqreen$" @@ -1060,7 +1060,7 @@ }, "Bigcommerce": { "cats": [ - "6" + 6 ], "html": "<link href=[^>]+cdn\\d+\\.bigcommerce\\.com/", "icon": "Bigcommerce.png", @@ -1070,7 +1070,7 @@ }, "Bigware": { "cats": [ - "6" + 6 ], "headers": { "Set-Cookie": "(?:bigwareCsid|bigWAdminID)" @@ -1083,7 +1083,7 @@ }, "BittAds": { "cats": [ - "36" + 36 ], "js": { "bitt": "" @@ -1094,7 +1094,7 @@ }, "Bizweb": { "cats": [ - "6" + 6 ], "js": { "Bizweb": "" @@ -1104,8 +1104,8 @@ }, "Blade": { "cats": [ - "18", - "22" + 18, + 22 ], "headers": { "X-Powered-By": "blade-([\\w.]+)?\\;version:\\1" @@ -1116,7 +1116,7 @@ }, "Blesta": { "cats": [ - "6" + 6 ], "headers": { "Set-Cookie": "blesta_sid" @@ -1126,7 +1126,7 @@ }, "Blip.tv": { "cats": [ - "14" + 14 ], "html": "<(?:param|embed|iframe)[^>]+blip\\.tv/play", "icon": "Blip.tv.png", @@ -1134,7 +1134,7 @@ }, "Blogger": { "cats": [ - "11" + 11 ], "icon": "Blogger.png", "meta": { @@ -1145,7 +1145,7 @@ }, "Bluefish": { "cats": [ - "20" + 20 ], "icon": "Bluefish.png", "meta": { @@ -1155,7 +1155,7 @@ }, "Boa": { "cats": [ - "22" + 22 ], "headers": { "Server": "Boa\\/?([\\d\\.a-z]+)?\\;version:\\1" @@ -1164,7 +1164,7 @@ }, "Boba.js": { "cats": [ - "12" + 12 ], "implies": "Google Analytics", "script": "boba(?:\\.min)?\\.js", @@ -1172,7 +1172,7 @@ }, "Bold Chat": { "cats": [ - "52" + 52 ], "icon": "BoldChat.png", "script": "^https?://vmss\\.boldchat\\.com/aid/\\d{18}/bc\\.vms4/vms\\.js", @@ -1180,7 +1180,7 @@ }, "Bolt": { "cats": [ - "1" + 1 ], "icon": "Bolt.png", "implies": "PHP", @@ -1191,7 +1191,7 @@ }, "Bonfire": { "cats": [ - "18" + 18 ], "headers": { "Set-Cookie": "bf_session=" @@ -1203,7 +1203,7 @@ }, "Bootstrap Table": { "cats": [ - "12" + 12 ], "html": "<link[^>]+href=\"[^>]*bootstrap-table(?:\\.min)?\\.css", "icon": "Bootstrap Table.svg", @@ -1216,7 +1216,7 @@ }, "Bounce Exchange": { "cats": [ - "32" + 32 ], "js": { "bouncex": "" @@ -1228,7 +1228,7 @@ }, "Brother": { "cats": [ - "40" + 40 ], "html": [ "(?:<!--|<BR>)Copyright\\(C\\) [\\d-]+ Brother Industries", @@ -1239,7 +1239,7 @@ }, "BrowserCMS": { "cats": [ - "1" + 1 ], "icon": "BrowserCMS.png", "implies": "Ruby", @@ -1250,10 +1250,10 @@ }, "Bubble": { "cats": [ - "1", - "3", - "18", - "22" + 1, + 3, + 18, + 22 ], "js": { "appquery": "" @@ -1264,7 +1264,7 @@ }, "BugSense": { "cats": [ - "10" + 10 ], "js": { "Bugsense": "" @@ -1275,7 +1275,7 @@ }, "BugSnag": { "cats": [ - "10" + 10 ], "js": { "Bugsnag": "" @@ -1286,7 +1286,7 @@ }, "Bugzilla": { "cats": [ - "13" + 13 ], "html": [ "href=\"enter_bug\\.cgi\">", @@ -1304,7 +1304,7 @@ }, "Bulma": { "cats": [ - "18" + 18 ], "html": "<link[^>]+?href=\"[^\"]+bulma(?:\\.min)?\\.css", "icon": "Bulma.png", @@ -1312,7 +1312,7 @@ }, "Burning Board": { "cats": [ - "2" + 2 ], "html": "<a href=\"[^>]+woltlab\\.com[^<]+<strong>Burning Board", "icon": "Burning Board.png", @@ -1324,7 +1324,7 @@ }, "Business Catalyst": { "cats": [ - "1" + 1 ], "html": "<!-- BC_OBNW -->", "icon": "Business Catalyst.png", @@ -1333,7 +1333,7 @@ }, "BuySellAds": { "cats": [ - "36" + 36 ], "js": { "_bsa": "", @@ -1348,21 +1348,21 @@ }, "C++": { "cats": [ - "27" + 27 ], "icon": "C++.png", "website": "http://isocpp.org" }, "CFML": { "cats": [ - "27" + 27 ], "icon": "CFML.png", "website": "http://adobe.com/products/coldfusion-family.html" }, "CKEditor": { "cats": [ - "24" + 24 ], "js": { "CKEDITOR": "", @@ -1373,7 +1373,7 @@ }, "CMS Made Simple": { "cats": [ - "1" + 1 ], "headers": { "Set-Cookie": "^CMSSESSID" @@ -1387,7 +1387,7 @@ }, "CMSimple": { "cats": [ - "1" + 1 ], "implies": "PHP", "meta": { @@ -1397,7 +1397,7 @@ }, "CO2Stats": { "cats": [ - "10" + 10 ], "html": "src=[^>]+co2stats\\.com/propres\\.php", "icon": "CO2Stats.png", @@ -1405,7 +1405,7 @@ }, "CPG Dragonfly": { "cats": [ - "1" + 1 ], "headers": { "X-Powered-By": "^Dragonfly CMS" @@ -1419,7 +1419,7 @@ }, "CS Cart": { "cats": [ - "6" + 6 ], "js": { "fn_compare_strings": "" @@ -1434,7 +1434,7 @@ }, "CacheFly": { "cats": [ - "31" + 31 ], "headers": { "Server": "^CFS ", @@ -1446,7 +1446,7 @@ }, "Caddy": { "cats": [ - "22" + 22 ], "headers": { "Server": "^Caddy$" @@ -1457,7 +1457,7 @@ }, "CakePHP": { "cats": [ - "18" + 18 ], "headers": { "Set-Cookie": "cakephp=" @@ -1471,14 +1471,14 @@ }, "Canon": { "cats": [ - "40" + 40 ], "icon": "Canon.png", "website": "http://www.canon.com" }, "Canon HTTP Server": { "cats": [ - "22" + 22 ], "headers": { "Server": "CANON HTTP Server(?:/([\\d.]+))?\\;version:\\1" @@ -1489,8 +1489,8 @@ }, "Captch Me": { "cats": [ - "16", - "36" + 16, + 36 ], "js": { "Captchme": "" @@ -1501,7 +1501,7 @@ }, "Carbon Ads": { "cats": [ - "36" + 36 ], "js": { "_carbonads": "" @@ -1513,7 +1513,7 @@ }, "Cargo": { "cats": [ - "1" + 1 ], "html": "<link [^>]+Cargo feed", "icon": "Cargo.png", @@ -1526,8 +1526,8 @@ }, "Catberry.js": { "cats": [ - "12", - "18" + 12, + 18 ], "js": { "catberry": "", @@ -1542,7 +1542,7 @@ }, "Catwalk": { "cats": [ - "22" + 22 ], "headers": { "Server": "Catwalk\\/?([\\d\\.]+)?\\;version:\\1" @@ -1553,7 +1553,7 @@ }, "CentOS": { "cats": [ - "28" + 28 ], "headers": { "Server": "CentOS", @@ -1564,7 +1564,7 @@ }, "CenteHTTPd": { "cats": [ - "22" + 22 ], "headers": { "Server": "CenteHTTPd(?:/([\\d.]+))?\\;version:\\1" @@ -1574,7 +1574,7 @@ }, "Chameleon": { "cats": [ - "1" + 1 ], "icon": "Chameleon.png", "implies": [ @@ -1588,7 +1588,7 @@ }, "Chamilo": { "cats": [ - "21" + 21 ], "headers": { "X-Powered-By": "Chamilo ([\\d.]+)\\;version:\\1" @@ -1603,7 +1603,7 @@ }, "Chart.js": { "cats": [ - "25" + 25 ], "js": { "Chart": "\\;confidence:50", @@ -1621,7 +1621,7 @@ }, "Chartbeat": { "cats": [ - "10" + 10 ], "js": { "_sf_endpt": "", @@ -1633,7 +1633,7 @@ }, "Cherokee": { "cats": [ - "22" + 22 ], "headers": { "Server": "Cherokee(?:/([\\d.]+))?\\;version:\\1" @@ -1643,8 +1643,8 @@ }, "CherryPy": { "cats": [ - "18", - "22" + 18, + 22 ], "headers": { "Server": "CherryPy\\/?([\\d\\.]+)?\\;version:\\1" @@ -1655,7 +1655,7 @@ }, "Chitika": { "cats": [ - "36" + 36 ], "js": { "ch_client": "", @@ -1667,7 +1667,7 @@ }, "Ckan": { "cats": [ - "1" + 1 ], "headers": { "Access-Control-Allow-Headers": "X-CKAN-API-KEY", @@ -1687,7 +1687,7 @@ }, "ClickHeat": { "cats": [ - "10" + 10 ], "js": { "clickHeatServer": "" @@ -1699,7 +1699,7 @@ }, "ClickTale": { "cats": [ - "10" + 10 ], "js": { "clickTaleStartEventSignal": "" @@ -1709,7 +1709,7 @@ }, "Clicky": { "cats": [ - "10" + 10 ], "js": { "clicky": "" @@ -1720,7 +1720,7 @@ }, "Clientexec": { "cats": [ - "6" + 6 ], "html": "clientexec\\.[^>]*\\s?=\\s?[^>]*;", "icon": "Clientexec.png", @@ -1728,7 +1728,7 @@ }, "Clipboard.js": { "cats": [ - "19" + 19 ], "icon": "Clipboard.js.svg", "script": "clipboard(?:\\.min)?\\.js", @@ -1736,7 +1736,7 @@ }, "CloudCart": { "cats": [ - "6" + 6 ], "icon": "cloudcart.svg", "meta": { @@ -1747,7 +1747,7 @@ }, "Cloudcoins": { "cats": [ - "56" + 56 ], "js": { "CLOUDCOINS": "" @@ -1757,7 +1757,7 @@ }, "CloudFlare": { "cats": [ - "31" + 31 ], "js": { "CloudFlare": "" @@ -1770,7 +1770,7 @@ }, "Cloudera": { "cats": [ - "34" + 34 ], "headers": { "Server": "cloudera" @@ -1780,7 +1780,7 @@ }, "CodeIgniter": { "cats": [ - "18" + 18 ], "headers": { "Set-Cookie": "(?:exp_last_activity|exp_tracker|ci_(?:session|(csrf_token)))\\;version:\\1?2+:" @@ -1792,7 +1792,7 @@ }, "CodeMirror": { "cats": [ - "19" + 19 ], "js": { "CodeMirror": "", @@ -1803,7 +1803,7 @@ }, "CoinHive": { "cats": [ - "56" + 56 ], "js": { "CoinHive": "" @@ -1815,8 +1815,8 @@ }, "CoinHive Captcha": { "cats": [ - "16", - "56" + 16, + 56 ], "html": "(?:<div[^>]+class=\"coinhive-captcha[^>]+data-key|<div[^>]+data-key[^>]+class=\"coinhive-captcha)", "script": "https?://authedmine\\.com/(?:lib/captcha|captcha)", @@ -1825,7 +1825,7 @@ }, "Coinimp": { "cats": [ - "56" + 56 ], "script": "https?://www\\.hashing\\.win/scripts/min\\.js", "icon": "coinimp.png", @@ -1833,7 +1833,7 @@ }, "Coinlab": { "cats": [ - "56" + 56 ], "js": { "Coinlab": "" @@ -1844,7 +1844,7 @@ }, "Comandia": { "cats": [ - "6" + 6 ], "js": { "Comandia": "" @@ -1855,7 +1855,7 @@ }, "Commerce Server": { "cats": [ - "6" + 6 ], "headers": { "COMMERCE-SERVER-SOFTWARE": "" @@ -1866,7 +1866,7 @@ }, "CompaqHTTPServer": { "cats": [ - "22" + 22 ], "headers": { "Server": "CompaqHTTPServer\\/?([\\d\\.]+)?\\;version:\\1" @@ -1876,7 +1876,7 @@ }, "Concrete5": { "cats": [ - "1" + 1 ], "js": { "CCM_IMAGE_PATH": "" @@ -1891,7 +1891,7 @@ }, "Connect": { "cats": [ - "18" + 18 ], "headers": { "X-Powered-By": "^Connect$" @@ -1902,7 +1902,7 @@ }, "Contao": { "cats": [ - "1" + 1 ], "html": [ "<!--[^>]+powered by (?:TYPOlight|Contao)[^>]*-->", @@ -1917,7 +1917,7 @@ }, "Contenido": { "cats": [ - "1" + 1 ], "icon": "Contenido.png", "implies": "PHP", @@ -1928,7 +1928,7 @@ }, "Contens": { "cats": [ - "1" + 1 ], "icon": "Contens.png", "implies": [ @@ -1942,8 +1942,8 @@ }, "ContentBox": { "cats": [ - "1", - "11" + 1, + 11 ], "icon": "ContentBox.png", "implies": "Adobe ColdFusion", @@ -1954,7 +1954,7 @@ }, "Contentful": { "cats": [ - "1" + 1 ], "html": "<[^>]+(?:https?:)?//(?:assets|downloads|images|videos)\\.contentful\\.com", "icon": "Contentful.svg", @@ -1962,7 +1962,7 @@ }, "ConversionLab": { "cats": [ - "10" + 10 ], "icon": "ConversionLab.png", "script": "conversionlab\\.trackset\\.com/track/tsend\\.js", @@ -1970,7 +1970,7 @@ }, "Coppermine": { "cats": [ - "7" + 7 ], "html": "<!--Coppermine Photo Gallery ([\\d.]+)\\;version:\\1", "icon": "Coppermine.png", @@ -1979,7 +1979,7 @@ }, "Cosmoshop": { "cats": [ - "6" + 6 ], "icon": "Cosmoshop.png", "script": "cosmoshop_functions\\.js", @@ -1987,7 +1987,7 @@ }, "Cotonti": { "cats": [ - "1" + 1 ], "icon": "Cotonti.png", "implies": "PHP", @@ -1998,7 +1998,7 @@ }, "CouchDB": { "cats": [ - "22" + 22 ], "headers": { "Server": "CouchDB/([\\d.]+)\\;version:\\1" @@ -2008,8 +2008,8 @@ }, "Cowboy": { "cats": [ - "18", - "22" + 18, + 22 ], "headers": { "Server": "Cowboy" @@ -2020,7 +2020,7 @@ }, "CppCMS": { "cats": [ - "1" + 1 ], "headers": { "X-Powered-By": "^CppCMS/([\\d.]+)$\\;version:\\1" @@ -2031,7 +2031,7 @@ }, "Craft CMS": { "cats": [ - "1" + 1 ], "headers": { "Set-Cookie": "^CraftSessionId=", @@ -2043,7 +2043,7 @@ }, "Crazy Egg": { "cats": [ - "10" + 10 ], "js": { "CE2": "" @@ -2054,7 +2054,7 @@ }, "Criteo": { "cats": [ - "36" + 36 ], "js": { "Criteo": "", @@ -2067,7 +2067,7 @@ }, "Cross Pixel": { "cats": [ - "10" + 10 ], "js": { "cp_C4w1ldN2d9PmVrkN": "" @@ -2078,7 +2078,7 @@ }, "Crypto-Loot": { "cats": [ - "56" + 56 ], "js": { "CryptoLoot": "", @@ -2090,7 +2090,7 @@ }, "CubeCart": { "cats": [ - "6" + 6 ], "html": "(?:Powered by <a href=[^>]+cubecart\\.com|<p[^>]+>Powered by CubeCart)", "icon": "CubeCart.png", @@ -2102,7 +2102,7 @@ }, "Cufon": { "cats": [ - "17" + 17 ], "js": { "Cufon": "" @@ -2113,7 +2113,7 @@ }, "D3": { "cats": [ - "25" + 25 ], "js": { "d3": "\\;confidence:20", @@ -2125,7 +2125,7 @@ }, "DHTMLX": { "cats": [ - "12" + 12 ], "icon": "DHTMLX.png", "script": "dhtmlxcommon\\.js", @@ -2133,7 +2133,7 @@ }, "DM Polopoly": { "cats": [ - "1" + 1 ], "html": "<(?:link [^>]*href|img [^>]*src)=\"/polopoly_fs/", "icon": "DM Polopoly.png", @@ -2142,7 +2142,7 @@ }, "DNN": { "cats": [ - "1" + 1 ], "js": { "DotNetNuke": "", @@ -2171,7 +2171,7 @@ }, "DTG": { "cats": [ - "1" + 1 ], "html": [ "<a[^>]+Site Powered by DTG" @@ -2182,7 +2182,7 @@ }, "Dancer": { "cats": [ - "18" + 18 ], "headers": { "Server": "Perl Dancer ([\\d.]+)\\;version:\\1", @@ -2194,7 +2194,7 @@ }, "Danneo CMS": { "cats": [ - "1" + 1 ], "headers": { "X-Powered-By": "CMS Danneo ([\\d.]+)\\;version:\\1" @@ -2211,7 +2211,7 @@ }, "Darwin": { "cats": [ - "28" + 28 ], "headers": { "Server": "Darwin", @@ -2222,7 +2222,7 @@ }, "DataLife Engine": { "cats": [ - "1" + 1 ], "js": { "dle_root": "" @@ -2239,7 +2239,7 @@ }, "DataTables": { "cats": [ - "12" + 12 ], "icon": "DataTables.png", "implies": "jQuery", @@ -2248,7 +2248,7 @@ }, "David Webbox": { "cats": [ - "22" + 22 ], "headers": { "Server": "David-WebBox/([\\d.a]+ \\(\\d+\\))\\;version:\\1" @@ -2258,7 +2258,7 @@ }, "Debian": { "cats": [ - "28" + 28 ], "headers": { "Server": "Debian", @@ -2269,7 +2269,7 @@ }, "PHPDebugBar": { "cats": [ - "47" + 47 ], "js": { "phpdebugbar": "", @@ -2283,7 +2283,7 @@ }, "Decorum": { "cats": [ - "22" + 22 ], "headers": { "Server": "DECORUM(?:/([\\d.]+))?\\;version:\\1" @@ -2292,7 +2292,7 @@ }, "DedeCMS": { "cats": [ - "1" + 1 ], "js": { "DedeContainer": "" @@ -2304,7 +2304,7 @@ }, "deepMiner": { "cats": [ - "56" + 56 ], "js": { "deepMiner": "" @@ -2315,14 +2315,14 @@ }, "Dell": { "cats": [ - "40" + 40 ], "icon": "Dell.svg", "website": "http://dell.com" }, "Deployd": { "cats": [ - "12" + 12 ], "js": { "dpd": "" @@ -2333,7 +2333,7 @@ }, "DirectAdmin": { "cats": [ - "9" + 9 ], "headers": { "Server": "DirectAdmin Daemon v([\\d.]+)\\;version:\\1" @@ -2348,7 +2348,7 @@ }, "Discourse": { "cats": [ - "2" + 2 ], "js": { "Discourse": "" @@ -2362,7 +2362,7 @@ }, "Discuz! X": { "cats": [ - "2" + 2 ], "js": { "discuz_uid": "", @@ -2378,7 +2378,7 @@ }, "Disqus": { "cats": [ - "15" + 15 ], "js": { "DISQUS": "", @@ -2391,7 +2391,7 @@ }, "Django": { "cats": [ - "18" + 18 ], "js": { "django": "", @@ -2404,7 +2404,7 @@ }, "Django CMS": { "cats": [ - "1" + 1 ], "icon": "Django CMS.png", "implies": "Django", @@ -2412,7 +2412,7 @@ }, "Dojo": { "cats": [ - "12" + 12 ], "js": { "dojo": "", @@ -2424,7 +2424,7 @@ }, "Dokeos": { "cats": [ - "21" + 21 ], "headers": { "X-Powered-By": "Dokeos" @@ -2444,7 +2444,7 @@ }, "DokuWiki": { "cats": [ - "8" + 8 ], "headers": { "Set-Cookie": "^DokuWiki=" @@ -2458,7 +2458,7 @@ }, "Dotclear": { "cats": [ - "1" + 1 ], "headers": { "X-Dotclear-Static-Cache": "" @@ -2469,7 +2469,7 @@ }, "DoubleClick Ad Exchange (AdX)": { "cats": [ - "36" + 36 ], "icon": "DoubleClick.svg", "script": [ @@ -2481,7 +2481,7 @@ }, "DoubleClick Campaign Manager (DCM)": { "cats": [ - "36" + 36 ], "icon": "DoubleClick.svg", "script": "2mdn\\.net", @@ -2489,7 +2489,7 @@ }, "DoubleClick Floodlight": { "cats": [ - "36" + 36 ], "icon": "DoubleClick.svg", "script": "https?://fls\\.doubleclick\\.net", @@ -2497,7 +2497,7 @@ }, "DoubleClick for Publishers (DFP)": { "cats": [ - "36" + 36 ], "icon": "DoubleClick.svg", "script": "googletagservices\\.com/tag/js/gpt(?:_mobile)?\\.js", @@ -2505,7 +2505,7 @@ }, "DovetailWRP": { "cats": [ - "1" + 1 ], "html": "<link[^>]* href=\"\\/DovetailWRP\\/", "icon": "DovetailWRP.png", @@ -2515,7 +2515,7 @@ }, "Doxygen": { "cats": [ - "4" + 4 ], "html": "(?:<!-- Generated by Doxygen ([\\d.]+)|<link[^>]+doxygen\\.css)\\;version:\\1", "icon": "Doxygen.png", @@ -2526,7 +2526,7 @@ }, "DreamWeaver": { "cats": [ - "20" + 20 ], "html": "(?:<!--[^>]*(?:InstanceBeginEditable|Dreamweaver([^>]+)target|DWLayoutDefaultTable)|function MM_preloadImages\\(\\) \\{)\\;version:\\1", "icon": "DreamWeaver.png", @@ -2534,7 +2534,7 @@ }, "Drupal": { "cats": [ - "1" + 1 ], "js": { "Drupal": "" @@ -2555,7 +2555,7 @@ }, "Drupal Commerce": { "cats": [ - "6" + 6 ], "html": "<[^>]+(?:id=\"block[_-]commerce[_-]cart[_-]cart|class=\"commerce[_-]product[_-]field)", "icon": "Drupal Commerce.png", @@ -2564,9 +2564,9 @@ }, "Dynamicweb": { "cats": [ - "1", - "6", - "10" + 1, + 6, + 10 ], "headers": { "Set-Cookie": "Dynamicweb=" @@ -2580,7 +2580,7 @@ }, "Dynatrace": { "cats": [ - "10" + 10 ], "icon": "Dynatrace.png", "script": "dtagent.*\\.js", @@ -2588,7 +2588,7 @@ }, "E-Commerce Paraguay": { "cats": [ - "6" + 6 ], "icon": "eCommercePy.png", "script": "cdn\\.e-commerceparaguay\\.com", @@ -2596,7 +2596,7 @@ }, "E-Merchant": { "cats": [ - "6" + 6 ], "icon": "E-Merchant.png", "script": "cdn\\.e-merchant\\.com", @@ -2604,7 +2604,7 @@ }, "EC-CUBE": { "cats": [ - "6" + 6 ], "icon": "ec-cube.png", "implies": "PHP", @@ -2616,7 +2616,7 @@ }, "ef.js": { "cats": [ - "12" + 12 ], "icon": "ef.js.svg", "js": { @@ -2629,7 +2629,7 @@ }, "ELOG": { "cats": [ - "19" + 19 ], "html": "<title>ELOG Logbook Selection", "icon": "ELOG.png", @@ -2637,7 +2637,7 @@ }, "ELOG HTTP": { "cats": [ - "22" + 22 ], "headers": { "Server": "ELOG HTTP( \\d[\\-\\d\\.]+)?\\;version:\\1" @@ -2648,7 +2648,7 @@ }, "EPages": { "cats": [ - "6" + 6 ], "headers": { "X-Powered-By": "epages 6" @@ -2659,7 +2659,7 @@ }, "EPiServer": { "cats": [ - "1" + 1 ], "headers": { "Set-Cookie": "EPi(?:Trace|Server)[^;]*=" @@ -2673,7 +2673,7 @@ }, "EPrints": { "cats": [ - "19" + 19 ], "js": { "EPrints": "", @@ -2688,7 +2688,7 @@ }, "ESERV-10": { "cats": [ - "22" + 22 ], "headers": { "Server": "ESERV-10(?:/([\\d.]+))?\\;version:\\1" @@ -2698,7 +2698,7 @@ }, "EWS-NIC4": { "cats": [ - "22" + 22 ], "headers": { "Server": "EWS-NIC4(?:\\/([\\d\\.a-z]+))?\\;version:\\1" @@ -2709,7 +2709,7 @@ }, "EdgeCast": { "cats": [ - "31" + 31 ], "headers": { "Server": "^ECD\\s\\(\\S+\\)" @@ -2720,7 +2720,7 @@ }, "Elcodi": { "cats": [ - "6" + 6 ], "headers": { "X-Elcodi": "" @@ -2734,7 +2734,7 @@ }, "Eleanor CMS": { "cats": [ - "1" + 1 ], "icon": "Eleanor CMS.png", "implies": "PHP", @@ -2745,7 +2745,7 @@ }, "Eloqua": { "cats": [ - "32" + 32 ], "js": { "elqSiteID": "", @@ -2759,7 +2759,7 @@ }, "EmbedThis Appweb": { "cats": [ - "22" + 22 ], "headers": { "Server": "Mbedthis-Appweb(?:/([\\d.]+))?\\;version:\\1" @@ -2769,7 +2769,7 @@ }, "Embedthis-http": { "cats": [ - "22" + 22 ], "headers": { "Server": "Embedthis-http(?:/([\\d.]+))?\\;version:\\1" @@ -2779,7 +2779,7 @@ }, "Ember.js": { "cats": [ - "12" + 12 ], "js": { "Ember": "", @@ -2791,8 +2791,8 @@ }, "Enyo": { "cats": [ - "12", - "26" + 12, + 26 ], "js": { "enyo": "" @@ -2803,7 +2803,7 @@ }, "Epoch": { "cats": [ - "25" + 25 ], "html": "]+?href=\"[^\"]+epoch(?:\\.min)?\\.css", "implies": "D3", @@ -2812,7 +2812,7 @@ }, "Epom": { "cats": [ - "36" + 36 ], "js": { "epomCustomParams": "" @@ -2823,7 +2823,7 @@ }, "Erlang": { "cats": [ - "27" + 27 ], "headers": { "Server": "Erlang( OTP/(?:[\\-\\d\\.ABR]+))?\\;version:\\1" @@ -2833,7 +2833,7 @@ }, "Etherpad": { "cats": [ - "24" + 24 ], "js": { "padeditbar": "", @@ -2851,7 +2851,7 @@ }, "Exagon Concept": { "cats": [ - "1" + 1 ], "headers": { "Server": "Exagon Server" @@ -2861,7 +2861,7 @@ }, "Exhibit": { "cats": [ - "25" + 25 ], "js": { "Exhibit": "", @@ -2873,8 +2873,8 @@ }, "Express": { "cats": [ - "18", - "22" + 18, + 22 ], "headers": { "X-Powered-By": "^Express$" @@ -2885,7 +2885,7 @@ }, "ExpressionEngine": { "cats": [ - "1" + 1 ], "headers": { "Set-Cookie": "(?:exp_last_activity|exp_tracker)" @@ -2896,7 +2896,7 @@ }, "ExtJS": { "cats": [ - "12" + 12 ], "js": { "Ext": "", @@ -2908,7 +2908,7 @@ }, "FAST ESP": { "cats": [ - "29" + 29 ], "html": "]+id=\"fastsearch\"", "icon": "FAST ESP.png", @@ -2916,7 +2916,7 @@ }, "FAST Search for SharePoint": { "cats": [ - "29" + 29 ], "html": "]+ name=\"ParametricSearch", "icon": "FAST Search for SharePoint.png", @@ -2929,7 +2929,7 @@ }, "FWP": { "cats": [ - "6" + 6 ], "html": "", "icon": "InProces.png", @@ -4314,7 +4314,7 @@ }, "Incapsula": { "cats": [ - "31" + 31 ], "headers": { "X-CDN": "Incapsula" @@ -4324,7 +4324,7 @@ }, "Indexhibit": { "cats": [ - "1" + 1 ], "html": "<(?:link|a href) [^>]+ndxz-studio", "implies": [ @@ -4339,7 +4339,7 @@ }, "Indico": { "cats": [ - "1" + 1 ], "headers": { "Set-cookie": "MAKACSESSION" @@ -4350,7 +4350,7 @@ }, "Indy": { "cats": [ - "22" + 22 ], "headers": { "Server": "Indy(?:/([\\d.]+))?\\;version:\\1" @@ -4359,7 +4359,7 @@ }, "InfernoJS": { "cats": [ - "12" + 12 ], "js": { "Inferno": "", @@ -4370,7 +4370,7 @@ }, "Infusionsoft": { "cats": [ - "32" + 32 ], "html": [ "]*name=\"infusionsoft_version\" [^>]*value=\"([^>]*)\" [^>]*\\/>\\;version:\\1", @@ -4381,7 +4381,7 @@ }, "InstantCMS": { "cats": [ - "1" + 1 ], "headers": { "Set-Cookie": "InstantCMS\\[logdate\\]=" @@ -4395,8 +4395,8 @@ }, "Intel Active Management Technology": { "cats": [ - "22", - "46" + 22, + 46 ], "headers": { "Server": "Intel\\(R\\) Active Management Technology(?: ([\\d.]+))?\\;version:\\1" @@ -4406,7 +4406,7 @@ }, "IntenseDebate": { "cats": [ - "15" + 15 ], "icon": "IntenseDebate.png", "script": "intensedebate\\.com", @@ -4414,7 +4414,7 @@ }, "Intercom": { "cats": [ - "10" + 10 ], "js": { "Intercom": "" @@ -4425,7 +4425,7 @@ }, "Intershop": { "cats": [ - "6" + 6 ], "icon": "Intershop.png", "script": "(?:is-bin|INTERSHOP)", @@ -4433,7 +4433,7 @@ }, "Invenio": { "cats": [ - "50" + 50 ], "headers": { "Set-cookie": "INVENIOSESSION" @@ -4444,7 +4444,7 @@ }, "Inwemo": { "cats": [ - "56" + 56 ], "js": { "Inwemo": "" @@ -4455,7 +4455,7 @@ }, "Ionicons": { "cats": [ - "17" + 17 ], "html": "]* href=[^>]+ionicons(?:\\.min)?\\.css", "icon": "Ionicons.png", @@ -4463,7 +4463,7 @@ }, "JAlbum": { "cats": [ - "7" + 7 ], "icon": "JAlbum.png", "implies": "Java", @@ -4474,7 +4474,7 @@ }, "JBoss Application Server": { "cats": [ - "22" + 22 ], "headers": { "X-Powered-By": "JBoss(?:-([\\d.]+))?\\;version:\\1" @@ -4484,7 +4484,7 @@ }, "JBoss Web": { "cats": [ - "22" + 22 ], "excludes": "Apache Tomcat", "headers": { @@ -4496,7 +4496,7 @@ }, "JC-HTTPD": { "cats": [ - "22" + 22 ], "excludes": "Apache", "headers": { @@ -4508,7 +4508,7 @@ }, "JET Enterprise": { "cats": [ - "6" + 6 ], "headers": { "powered": "jet-enterprise" @@ -4518,7 +4518,7 @@ }, "JS Charts": { "cats": [ - "25" + 25 ], "js": { "JSChart": "" @@ -4529,7 +4529,7 @@ }, "JTL Shop": { "cats": [ - "6" + 6 ], "headers": { "Set-Cookie": "JTLSHOP=" @@ -4540,7 +4540,7 @@ }, "Jalios": { "cats": [ - "1" + 1 ], "icon": "Jalios.png", "meta": { @@ -4550,8 +4550,8 @@ }, "Jahia DX": { "cats": [ - "1", - "47" + 1, + 47 ], "html": "