Merge remote-tracking branch 'upstream/master'

main
Benoit Pointet 13 years ago
commit 109cefd604

@ -28,120 +28,120 @@ if ( typeof wappalyzer != 'undefined' ) {
};
wappalyzer.apps = {
'1C-Bitrix': { cats: { 1: 1 }, html: /(<link[^>]+components\/bitrix|<script[^>]+1c\-bitrix)/i },
'2z Project': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+2z project/i },
'AddThis': { cats: { 1: 5 }, html: /<script[^>]* src=("|')[^>]*addthis\.com\/js/ },
'Adobe GoLive': { cats: { 1: 20 }, html: /<meta name=("|')generator("|') [^>]+Adobe GoLive/i },
'1C-Bitrix': { cats: { 1: 1 }, html: /<link[^>]+components\/bitrix/i, script: /1c\-bitrix/i },
'2z Project': { cats: { 1: 1 }, meta: { 'generator': /2z project/i } },
'AddThis': { cats: { 1: 5 }, script: /addthis\.com\/js/ },
'Adobe GoLive': { cats: { 1: 20 }, meta: { 'generator': /Adobe GoLive/i } },
'Advanced Web Stats': { cats: { 1: 10 }, html: /aws.src = [^<]+caphyon\-analytics/i },
'Amiro.CMS': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Amiro/i },
'Amiro.CMS': { cats: { 1: 1 }, meta: { 'generator': /Amiro/i } },
'Apache': { cats: { 1: 22 }, headers: { 'Server': /Apache/i } },
'Apache Tomcat': { cats: { 1: 22 }, headers: { 'Server': /Apache-Coyote/i } },
'Atlassian Confluence': { cats: { 1: 8 }, html: /Powered by <a href=.http:\/\/www\.atlassian\.com\/software\/confluence/i },
'Atlassian Jira': { cats: { 1: 13 }, html: /Powered by <a href=.http:\/\/www\.atlassian\.com\/software\/jira/i },
'AWStats': { cats: { 1: 10 }, html: /<meta name=("|')generator("|') [^>]+AWStats/i },
'AWStats': { cats: { 1: 10 }, meta: { 'generator': /AWStats/i } },
'Banshee': { cats: { 1: 1, 2: 18 }, html: /Built upon the <a href=("|')[^>]+banshee-php\.org/i },
'Backbone.js': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*backbone[^>]*\.js/i, env: /^Backbone$/ },
'BIGACE': { cats: { 1: 1 }, html: /(<meta name=("|')generator("|') [^>]+BIGACE|Powered by <a href=("|')[^>]+BIGACE|<!--\s+Site is running BIGACE)/i },
'Backbone.js': { cats: { 1: 12 }, script: /backbone.*\.js/, env: /^Backbone$/ },
'BIGACE': { cats: { 1: 1 }, meta: { 'generator': /BIGACE/ }, html: /Powered by <a href=("|')[^>]+BIGACE|<!--\s+Site is running BIGACE/i },
'BigDump': { cats: { 1: 3 }, html: /<!-- <h1>BigDump: Staggered MySQL Dump Importer/ },
'blip.tv': { cats: { 1: 14 }, html: /<(param|embed)[^>]+blip\.tv\/play/i },
'Blogger': { cats: { 1: 11 }, html: /<meta content=("|')blogger("|') [^>]+generator/i, url: /^(www.)?.+\.blogspot\.com/i },
'Blogger': { cats: { 1: 11 }, meta: { 'generator': /blogger/i }, url: /^(www.)?.+\.blogspot\.com/i },
'Bugzilla': { cats: { 1: 13 }, html: /<[^>]+(id|title|name)=("|')bugzilla/i },
'Burning Board': { cats: { 1: 2 }, html: /<a href=('|")[^>]+woltlab\.com.+Burning Board/i },
'chartbeat': { cats: { 1: 10 }, html: /function loadChartbeat\(\) {/i },
'Chamilo': { cats: { 1: 21 }, html: /<meta name=("|')generator("|') [^>]+Chamilo/i, headers: { 'X-Powered-By': /Chamilo/ } },
'Chamilo': { cats: { 1: 21 }, meta: { 'generator': /Chamilo/i }, headers: { 'X-Powered-By': /Chamilo/ } },
'Cherokee': { cats: { 1: 22 }, headers: { 'Server': /Cherokee/i } },
'ClickHeat': { cats: { 1: 10 }, html: /<script[^>]*src=[^>]+clickheat[^>]*\.js/i, env: '/^clickHeatBrowser$/' },
'ClickHeat': { cats: { 1: 10 }, script: /clickheat.*\.js/i, env: '/^clickHeatBrowser$/' },
'ClickTale': { cats: { 1: 10 }, html: /if\(typeof ClickTale(Tag)*==("|')function("|')\)/ },
'Clicky': { cats: { 1: 10 }, html: /<script src=("|')http:\/\/static\.getclicky\.com/i },
'CMS Made Simple': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+CMS Made Simple/i },
'Clicky': { cats: { 1: 10 }, script: /static\.getclicky\.com/ },
'CMS Made Simple': { cats: { 1: 1 }, meta: { 'generator': /CMS Made Simple/i } },
'CO2Stats': { cats: { 1: 10 }, html: /src=("|')http:\/\/www\.co2stats\.com\/propres\.php/ },
'comScore': { cats: { 1: 10 }, html: /<i{1}frame[^>]* (id=("|')comscore("|')|scr=[^>]+comscore)/ },
'Concrete5': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+concrete5/i },
'Concrete5': { cats: { 1: 1 }, meta: { 'generator': /concrete5/i } },
'Contao': { cats: { 1: 1 }, html: /(<!--\s+This website is powered by (TYPOlight|Contao)|<link[^>]+(typolight|contao).css)/i },
'Contens': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+contens/i },
'ConversionLab': { cats: { 1: 10 }, html: /<script[^>]* src=("|')http:\/\/conversionlab\.trackset\.com\/track\/tsend\.js("|')/ },
'Contens': { cats: { 1: 1 }, meta: { 'generator': /contens/i } },
'ConversionLab': { cats: { 1: 10 }, script: /conversionlab\.trackset\.com\/track\/tsend\.js/ },
'Coppermine': { cats: { 1: 7 }, html: /<!--Coppermine Photo Gallery/i },
'Cotonti': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Cotonti/i },
'Cotonti': { cats: { 1: 1 }, meta: { 'generator': /Cotonti/i } },
'cPanel': { cats: { 1: 9 }, html: /<!-- cPanel/i },
'Crazy Egg': { cats: { 1: 10 }, html: /<script type=("|')text\/javascript("|') src=("|')[^>]+cetrk\.com\/pages\/scripts\/[0-9]+\/[0-9]+\.js("|')/ },
'Crazy Egg': { cats: { 1: 10 }, script: /cetrk\.com\/pages\/scripts\/[0-9]+\/[0-9]+\.js/ },
'CS Cart': { cats: { 1: 6 }, html: /&nbsp;Powered by (<a href=.http:\/\/www\.cs\-cart\.com|CS\-Cart)/i },
'CubeCart': { cats: { 1: 6 }, html: /Powered by <a href=.http:\/\/www\.cubecart\.com/i },
'cufon': { cats: { 1: 17 }, html: /(<script[^>]* src=("|')[^>]*cufon\-yui\.js|<script[^>]*>[^<]+Cufon\.now\(\))/i },
'd3': { cats: { 1: 25 }, html: /<script[^>]*src=[^>]+d3[^>]*\.js/i, env: '/^d3$/' },
'Danneo CMS': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Danneo/i },
'DataLife Engine': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+DataLife Engine/i },
'DHTMLX': { cats: { 1: 12 }, html: /<script [^>]+dhtmlxcommon\.js/i },
'cufon': { cats: { 1: 17 }, script: /cufon\-yui\.js/, env: /^Cufon$/ },
'd3': { cats: { 1: 25 }, script: /d3(\.min)?\.js/, env: '/^d3$/' },
'Danneo CMS': { cats: { 1: 1 }, meta: { 'generator': /Danneo/i } },
'DataLife Engine': { cats: { 1: 1 }, meta: { 'generator': /DataLife Engine/i } },
'DHTMLX': { cats: { 1: 12 }, script: /dhtmlxcommon\.js/ },
'DirectAdmin': { cats: { 1: 9 }, html: /<a[^>]+>DirectAdmin<\/a> Web Control Panel/i },
'Disqus': { cats: { 1: 15 }, html: /(<div[^>]+id=("|')disqus_thread("|')|<script[^>]+disqus_url)/ },
'dojo': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*dojo(\.xd)?\.js/i, env: /^dojo$/ },
'Dokeos': { cats: { 1: 21 }, html: /(<meta name=("|')generator("|') [^>]+Dokeos|Portal <a[^>]+>Dokeos|@import "[^"]+dokeos_blue)/i, headers: { 'X-Powered-By': /Dokeos/ } },
'DokuWiki': { cats: { 1: 8 }, html: /<meta name=("|')generator("|') [^>]+DokuWiki/i },
'DotNetNuke': { cats: { 1: 1 }, html: /(<meta name=("|')generator("|') [^>]+DotNetNuke|<!\-\- by DotNetNuke Corporation)/i },
'Disqus': { cats: { 1: 15 }, script: /disqus_url/, html: /<div[^>]+id=("|')disqus_thread("|')/ },
'dojo': { cats: { 1: 12 }, script: /dojo(\.xd)?\.js/, env: /^dojo$/ },
'Dokeos': { cats: { 1: 21 }, meta: { 'generator': /Dokeos/i }, html: /Portal <a[^>]+>Dokeos|@import "[^"]+dokeos_blue/i, headers: { 'X-Powered-By': /Dokeos/ } },
'DokuWiki': { cats: { 1: 8 }, meta: { 'generator': /DokuWiki/i } },
'DotNetNuke': { cats: { 1: 1 }, meta: { 'generator': /DotNetNuke/i }, html: /<!\-\- by DotNetNuke Corporation/i },
'DreamWeaver': { cats: { 1: 20 }, html: /(<!\-\-[^>]*(InstanceBeginEditable|Dreamweaver[^>]+target|DWLayoutDefaultTable)|function MM_preloadImages\(\) {)/ },
'Drupal': { cats: { 1: 1 }, html: /(<script [^>]+drupal\.js|jQuery\.extend\(Drupal\.settings, \{|Drupal\.extend\(\{ settings: \{|<link[^>]+sites\/(default|all)\/themes\/|<style[^>]+sites\/(default|all)\/(themes|modules)\/)/i, headers: { 'X-Drupal-Cache': /.*/, 'Expires': /19 Nov 1978/ }, env: /^Drupal$/ },
'Dynamicweb': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Dynamicweb/i },
'e107': { cats: { 1: 1 }, html: /<script [^>]+e107\.js/i },
'Exhibit': { cats: { 1: 25 }, html: /<script[^>]*src=[^>]+exhibit[^>]*\.js/i, env: '/^Exhibit$/' },
'ExtJS': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*ext\-base\.js("|')/i, env: /^Ext$/ },
'Drupal': { cats: { 1: 1 }, script: /drupal\.js/, html: /(jQuery\.extend\(Drupal\.settings, \{|Drupal\.extend\(\{ settings: \{|<link[^>]+sites\/(default|all)\/themes\/|<style[^>]+sites\/(default|all)\/(themes|modules)\/)/i, headers: { 'X-Drupal-Cache': /.*/, 'Expires': /19 Nov 1978/ }, env: /^Drupal$/ },
'Dynamicweb': { cats: { 1: 1 }, meta: { 'generator': /Dynamicweb/i } },
'e107': { cats: { 1: 1 }, script: /e107\.js/ },
'Exhibit': { cats: { 1: 25 }, script: /exhibit.*\.js/, env: '/^Exhibit$/' },
'ExtJS': { cats: { 1: 12 }, script: /ext\-base\.js/, env: /^Ext$/ },
'ExpressionEngine': { cats: { 1: 1 }, headers: { 'Set-Cookie': /exp_last_activity/ } },
'eZ Publish': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+eZ Publish/i },
'eZ Publish': { cats: { 1: 1 }, meta: { 'generator': /eZ Publish/i } },
'FluxBB': { cats: { 1: 2 }, html: /Powered by (<strong>)?<a href=("|')[^>]+fluxbb/i },
'Flyspray': { cats: { 1: 13 }, html: /(<a[^>]+>Powered by Flyspray|<map id=("|')projectsearchform)/ },
'FrontPage': { cats: { 1: 20 }, html: /(<meta name=("|')GENERATOR("|') [^>]+Microsoft FrontPage|<html[^>]+urn:schemas\-microsoft\-com:office:office)/i },
'FrontPage': { cats: { 1: 20 }, meta: { 'generator': /Microsoft FrontPage/ }, html: /<html[^>]+urn:schemas\-microsoft\-com:office:office/i },
'Get Satisfaction': { cats: { 1: 13 }, html: /var feedback_widget = new GSFN\.feedback_widget\(feedback_widget_options\)/ },
'Google Analytics': { cats: { 1: 10 }, html: /(\.google\-analytics\.com\/ga\.js|<script src=("|')[^"]+google-analytics\.com\/urchin\.js("|'))/i, env: /^gaGlobal$/ },
'Google Analytics': { cats: { 1: 10 }, script: /(\.google\-analytics\.com\/ga\.js|google-analytics\.com\/urchin\.js)/, env: /^gaGlobal$/ },
'Google Font API': { cats: { 1: 17 }, html: /<link[^>]* href=("|')http:\/\/fonts\.googleapis\.com/ },
'Google Friend Connect': { cats: { 1: 5 }, html: /<script[^>]* src=("|')[^>]*google.com\/friendconnect/i },
'Google Maps': { cats: { 1: 5 }, html: /(<script[^>]* src=("|')[^>]*maps\.google\.com\/maps\?file=api|maps\.google\.com\/maps\/api\/staticmap)/i },
'Graffiti CMS': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Graffiti CMS/i },
'Google Friend Connect': { cats: { 1: 5 }, script: /google.com\/friendconnect/ },
'Google Maps': { cats: { 1: 5 }, script: /(maps\.google\.com\/maps\?file=api|maps\.google\.com\/maps\/api\/staticmap)/ },
'Graffiti CMS': { cats: { 1: 1 }, meta: { 'generator': /Graffiti CMS/i } },
'Gravity Insights': { cats: { 1: 10 }, html: /gravityInsightsParams\.site_guid = '/ },
'Hiawatha': { cats: { 1: 22 }, headers: { 'Server': /Hiawatha/i } },
'Highcharts': { cats: { 1: 25 }, html: /<script[^>]*src=[^>]+highcharts[^>]*\.js/i, env: '/^Highcharts$/' },
'Hotaru CMS': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Hotaru CMS/i },
'Highcharts': { cats: { 1: 25 }, script: /highcharts.*\.js/, env: '/^Highcharts$/' },
'Hotaru CMS': { cats: { 1: 1 }, meta: { 'generator': /Hotaru CMS/i } },
'IIS': { cats: { 1: 22 }, headers: { 'Server': /IIS/i } },
'InstantCMS': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+InstantCMS/i },
'IPB': { cats: { 1: 2 }, html: /<script [^>]+jscripts\/ips_/i },
'iWeb': { cats: { 1: 20 }, html: /<meta name=("|')generator("|') [^>]+iWeb/i },
'Jalios': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Jalios/i },
'Javascript Infovis Toolkit': { cats: { 1: 25 }, html: /<script[^>]*src=[^>]+jit[^>]*\.js/i, env: '/^\$jit$/' },
'Joomla': { cats: { 1: 1 }, html: /(<meta name=("|')generator("|') [^>]+Joomla|<!\-\- JoomlaWorks "K2")/i, headers: { 'X-Content-Encoded-By': /Joomla/ } },
'jqPlot': { cats: { 1: 25 }, html: /<script[^>]*src=[^>]+jqplot[^>]*\.js/i, env: '/^jQuery.jqplot$/' },
'jQuery UI': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*jquery\-ui[^>]*\.js/i },
'jQuery': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*jquery[^>]*\.js/i, env: /^jQuery$/ },
'jQuery Sparklines': { cats: { 1: 25 }, html: /<script[^>]*src=[^>]+sparkline[^>]*\.js/i, env: '/^jQuery.fn.sparkline$/' },
'JS Charts': { cats: { 1: 25 }, html: /<script[^>]*src=[^>]+jscharts[^>]*\.js/i, env: '/^JSChart$/' },
'InstantCMS': { cats: { 1: 1 }, meta: { 'generator': /InstantCMS/i } },
'IPB': { cats: { 1: 2 }, script: /jscripts\/ips_/ },
'iWeb': { cats: { 1: 20 }, meta: { 'generator': /iWeb/i } },
'Jalios': { cats: { 1: 1 }, meta: { 'generator': /Jalios/i } },
'Javascript Infovis Toolkit': { cats: { 1: 25 }, script: /jit.*\.js/, env: '/^\$jit$/' },
'Joomla': { cats: { 1: 1 }, meta: { 'generator': /Joomla/i }, html: /<!\-\- JoomlaWorks "K2"/i, headers: { 'X-Content-Encoded-By': /Joomla/ } },
'jqPlot': { cats: { 1: 25 }, script: /jqplot.*\.js/, env: '/^jQuery.jqplot$/' },
'jQuery UI': { cats: { 1: 12 }, script: /jquery\-ui.*\.js/ },
'jQuery': { cats: { 1: 12 }, script: /jquery.*.js/, env: /^jQuery$/ },
'jQuery Sparklines': { cats: { 1: 25 }, script: /sparkline.*\.js/i, env: '/^jQuery.fn.sparkline$/' },
'JS Charts': { cats: { 1: 25 }, script: /jscharts.*\.js/i, env: '/^JSChart$/' },
'JTL Shop': { cats: { 1: 6 }, html: /(<input[^>]+name=('|")JTLSHOP|<a href=('|")jtl\.php)/i },
'K2': { cats: { 1: 19 }, html: /<!\-\- JoomlaWorks "K2"/ },
'Kampyle': { cats: { 1: 10 }, html: /<script[^>]* src=("|')http:\/\/cf\.kampyle\.com\/k_button\.js("|')/ },
'Kentico CMS': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Kentico CMS/i },
'Koego': { cats: { 1: 10 }, html: /<script[^>]* src=("|')http\:\/\/tracking\.koego\.com\/end\/ego\.js("|')/ },
'Kolibri CMS': { cats: { 1: 1 }, html: /<meta name=("|')copyright("|') [^>]+Kolibri/i },
'Koobi': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Koobi/i },
'Kampyle': { cats: { 1: 10 }, script: /cf\.kampyle\.com\/k_button\.js/ },
'Kentico CMS': { cats: { 1: 1 }, meta: { 'generator': /Kentico CMS/i } },
'Koego': { cats: { 1: 10 }, script: /tracking\.koego\.com\/end\/ego\.js/ },
'Kolibri CMS': { cats: { 1: 1 }, meta: { 'generator': /Kolibri/i } },
'Koobi': { cats: { 1: 1 }, meta: { 'generator': /Koobi/i } },
'lighttpd': { cats: { 1: 22 }, headers: { 'Server': /lighttpd/i } },
'LiveJournal': { cats: { 1: 11 }, url: /^(www.)?.+\.livejournal\.com/i },
'Lotus Domino': { cats: { 1: 22 }, headers: { 'Server': /Lotus\-Domino/i } },
'Magento': { cats: { 1: 6 }, html: /var BLANK_URL = '[^>]+js\/blank\.html'/i },
'Mambo': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Mambo/i },
'Mambo': { cats: { 1: 1 }, meta: { 'generator': /Mambo/i } },
'MantisBT': { cats: { 1: 13 }, html: /<img[^>]+ alt=("|')Powered by Mantis Bugtracker/i },
'MaxSite CMS': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+MaxSite CMS/i },
'MediaWiki': { cats: { 1: 8 }, html: /(<meta name=("|')generator("|') [^>]+MediaWiki|<a[^>]+>Powered by MediaWiki<\/a>|<[^>]+id=("|')t\-specialpages)/i },
'MaxSite CMS': { cats: { 1: 1 }, meta: { 'generator': /MaxSite CMS/i } },
'MediaWiki': { cats: { 1: 8 }, meta: { 'generator': /MediaWiki/i }, html: /(<a[^>]+>Powered by MediaWiki<\/a>|<[^>]+id=("|')t\-specialpages)/i },
'Meebo': { cats: { 1: 5 }, html: /(<iframe id=("|')meebo\-iframe("|')|Meebo\('domReady'\))/ },
'Microsoft ASP.NET': { cats: { 1: 18 }, html: /<input[^>]+name=("|')__VIEWSTATE/, headers: { 'X-Powered-By': /ASP\.NET/, 'X-AspNet-Version': /.+/ } },
'Microsoft SharePoint': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Microsoft SharePoint/i, headers: { 'MicrosoftSharePointTeamServices': /.*/, 'X-SharePointHealthScore': /.*/, 'SPRequestGuid': /.*/ } },
'Microsoft SharePoint': { cats: { 1: 1 }, meta: { 'generator': /Microsoft SharePoint/i }, headers: { 'MicrosoftSharePointTeamServices': /.*/, 'X-SharePointHealthScore': /.*/, 'SPRequestGuid': /.*/ } },
'MiniBB': { cats: { 1: 2 }, html: /<a href=("|')[^>]+minibb.+\s+<!--End of copyright link/i },
'Mint': { cats: { 1: 10 }, html: /<script[^>]* src=("|')[^>]*mint\/\?js/i },
'Mixpanel': { cats: { 1: 10 }, html: /<script[^>]* src=("|')[^>]*api\.mixpanel\.com\/track/i },
'MochiKit': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*MochiKit\.js/i, env: /^MochiKit$/ },
'Modernizr': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*modernizr[^>]*\.js/i },
'Mint': { cats: { 1: 10 }, script: /mint\/\?js/ },
'Mixpanel': { cats: { 1: 10 }, script: /api\.mixpanel\.com\/track/ },
'MochiKit': { cats: { 1: 12 }, script: /MochiKit\.js/, env: /^MochiKit$/ },
'Modernizr': { cats: { 1: 12 }, script: /modernizr.*\.js/ },
'MODx': { cats: { 1: 1 }, html: /(<a[^>]+>Powered by MODx<\/a>|var el= \$\('modxhost'\);|<script type=("|')text\/javascript("|')>var MODX_MEDIA_PATH = "media";)|<(link|script)[^>]+assets\/(templates|snippets)\//i },
'Mollom': { cats: { 1: 16 }, html: /(<script[^>]* src=("|')[^>]*mollom\.js|<img[^>]+\/.mollom\/.com)/i },
'Mollom': { cats: { 1: 16 }, script: /mollom\.js/, html: /<img[^>]+\/.mollom\/.com/i },
'Moodle': { cats: { 1: 21 }, html: /(var moodleConfigFn = function\(me\)|<img[^>]+moodlelogo)/i },
'Moogo': { cats: { 1: 1 }, html: /<script[^>]* src=("|')[^"']+kotisivukone.js/ },
'MooTools': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*mootools[^>]*\.js("|')/i, env: /^MooTools$/ },
'Movable Type': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Movable Type/i },
'Moogo': { cats: { 1: 1 }, script: /kotisivukone.js/ },
'MooTools': { cats: { 1: 12 }, script: /mootools.*\.js/, env: /^MooTools$/ },
'Movable Type': { cats: { 1: 1 }, meta: { 'generator': /Movable Type/i } },
'MyBB': { cats: { 1: 2 }, html: /(<script [^>]+\s+<!--\s+lang\.no_new_posts|<a[^>]* title=("|')Powered By MyBB)/i },
'MyBlogLog': { cats: { 1: 5 }, html: /<script[^>]* src=("|')[^>]*pub\.mybloglog\.com/i },
'Mynetcap': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Mynetcap/i },
'MyBlogLog': { cats: { 1: 5 }, script: /pub\.mybloglog\.com/i },
'Mynetcap': { cats: { 1: 1 }, meta: { 'generator': /Mynetcap/i } },
'Nedstat': { cats: { 1: 10 }, html: /sitestat\(("|')http:\/\/nl\.sitestat\.com/ },
'Nginx': { cats: { 1: 22 }, headers: { 'Server': /nginx/i } },
'NOIX': { cats: { 1: 19 }, html: /<[^>]+(src|href)=[^>]*(\/media\/noix)|<!\-\- NOIX/i },
@ -151,99 +151,99 @@ if ( typeof wappalyzer != 'undefined' ) {
'openEngine': { cats: { 1: 1 }, html: /<meta[^>]+openEngine/i },
'osCommerce': { cats: { 1: 6 }, html: /<!-- header_eof \/\/-->|<a[^>]*(osCsid|cPath)/i },
'osCSS': { cats: { 1: 6 }, html: /<body onload=("|')window\.defaultStatus='oscss templates';("|')/i },
'PANSITE': { cats: { 1: 1 }, html: /<meta NAME=("|')(DC\.)?Generator("|')[^>]+PANSITE/i },
'PANSITE': { cats: { 1: 1 }, meta: { 'generator': /PANSITE/i } },
'papaya CMS': { cats: { 1: 1 }, html: /<link[^>]*\/papaya-themes\//i },
'PHP-Fusion': { cats: { 1: 1 }, html: /Powered by <a href=("|')[^>]+php-fusion/i },
'PHP-Nuke': { cats: { 1: 2 }, html: /(<meta name=("|')generator("|') [^>]+PHP-Nuke|<[^>]+Powered by PHP\-Nuke)/i },
'phpBB': { cats: { 1: 2 }, html: /(Powered by (<a href=("|')[^>]+)?phpBB|<meta name=("|')copyright("|') [^>]+phpBB Group)/i },
'PHP-Nuke': { cats: { 1: 2 }, meta: { 'generator': /PHP-Nuke/i }, html: /<[^>]+Powered by PHP\-Nuke/i },
'phpBB': { cats: { 1: 2 }, meta: { 'copyright': /phpBB Group/ }, html: /Powered by (<a href=("|')[^>]+)?phpBB/i },
'phpDocumentor': { cats: { 1: 4 }, html: /<!-- Generated by phpDocumentor/ },
'phpMyAdmin': { cats: { 1: 3 }, html: /(var pma_absolute_uri = '|PMA_sendHeaderLocation\(|<title>phpMyAdmin<\/title>)/i },
'phpPgAdmin': { cats: { 1: 3 }, html: /(<title>phpPgAdmin<\/title>|<span class=("|')appname("|')>phpPgAdmin)/i },
'Piwik': { cats: { 1: 10 }, html: /var piwikTracker = Piwik\.getTracker\(/i },
'Plesk': { cats: { 1: 9 }, html: /<script[^>]* src=("|')[^>]*common\.js\?plesk/i },
'Plone': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Plone/i },
'Plesk': { cats: { 1: 9 }, script: /common\.js\?plesk/i },
'Plone': { cats: { 1: 1 }, meta: { 'generator': /Plone/i } },
'Plura': { cats: { 1: 19 }, html: /<iframe src="http:\/\/pluraserver\.com/ },
'posterous': { cats: { 1: 1, 2: 11 }, html: /<div class=("|')posterous/i },
'Prestashop': { cats: { 1: 6 }, html: /(<meta name=("|')generator("|') [^>]+PrestaShop|Powered by <a href=("|')[^>]+PrestaShop)/i },
'Prototype': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*(prototype|protoaculous)\.js("|')/i, env: /^Prototype$/ },
'Protovis': { cats: { 1: 25 }, html: /<script[^>]* src=("|')[^>]*protovis[^>]*\.js/i, env: /^protovis$/ },
'Prestashop': { cats: { 1: 6 }, meta: { 'generator': /PrestaShop/i }, html: /Powered by <a href=("|')[^>]+PrestaShop/i },
'Prototype': { cats: { 1: 12 }, script: /(prototype|protoaculous)\.js/, env: /^Prototype$/ },
'Protovis': { cats: { 1: 25 }, script: /protovis.*\.js/, env: /^protovis$/ },
'punBB': { cats: { 1: 2 }, html: /Powered by <a href=("|')[^>]+punbb/i },
'Quantcast': { cats: { 1: 10 }, html: /<script[^>]* src=("|')http:\/\/edge\.quantserve\.com\/quant\.js("|')>/i, env: /^quantserve$/ },
'Quantcast': { cats: { 1: 10 }, script: /edge\.quantserve\.com\/quant\.js/, env: /^quantserve$/ },
'Quick.Cart': { cats: { 1: 6 }, html: /<a href="[^>]+opensolution\.org\/">Powered by/i },
'Raphael': { cats: { 1: 25 }, html: /<script[^>]* src=("|')[^>]*raphael[^>]*\.js/i, env: /^Raphael$/ },
'reCAPTCHA': { cats: { 1: 16 }, html: /(<div[^>]+id=("|')recaptcha_image|<script[^>]+ src=("|')(api\-secure\.recaptcha\.net|recaptcha_ajax\.js))/ },
'Raphael': { cats: { 1: 25 }, script: /raphael.*\.js/, env: /^Raphael$/ },
'reCAPTCHA': { cats: { 1: 16 }, script: /(api\-secure\.recaptcha\.net|recaptcha_ajax\.js)/, html: /<div[^>]+id=("|')recaptcha_image/ },
'Reddit': { cats: { 1: 2 }, html: /(<script[^>]+>var reddit = {|<a[^>]+Powered by Reddit|powered by <a[^>]+>reddit<)/i, url: /^(www.)?reddit\.com/ },
'Redmine': { cats: { 1: 13 }, html: /(<meta name=("|')description("|')Redmine("|')|Powered by <a href=("|')[^>]+Redmine)/i },
'Redmine': { cats: { 1: 13 }, meta: { 'description': /Redmine/i }, html: /Powered by <a href=("|')[^>]+Redmine/i },
'Reinvigorate': { cats: { 1: 10 }, html: /reinvigorate\.track\("/ },
'S.Builder': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+S\.Builder/i },
's9y': { cats: { 1: 1 }, html: /<meta name=("|')Powered-By("|') [^>]+Serendipity/i },
'script.aculo.us': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*(scriptaculous|protoaculous)\.js("|')/i, env: /^Scriptaculous$/ },
'ShareThis': { cats: { 1: 5 }, html: /<script[^>]+ src=("|')[^"']+w\.sharethis\.com\//i },
'sIFR': { cats: { 1: 17 }, html: /<script[^>]* src=("|')[^>]*sifr\.js/i },
'Site Meter': { cats: { 1: 10 }, html: /<script[^>]* src=("|')http:\/\/[^.]+\.sitemeter.com\/js\/counter\.js\?site=/i },
'S.Builder': { cats: { 1: 1 }, meta: { 'generator': /S\.Builder/i } },
's9y': { cats: { 1: 1 }, meta: { 'generator': /Serendipity/i } },
'script.aculo.us': { cats: { 1: 12 }, script: /(scriptaculous|protoaculous)\.js/, env: /^Scriptaculous$/ },
'ShareThis': { cats: { 1: 5 }, script: /w\.sharethis\.com\// },
'sIFR': { cats: { 1: 17 }, script: /sifr\.js/ },
'Site Meter': { cats: { 1: 10 }, script: /sitemeter.com\/js\/counter\.js\?site=/ },
'SiteCatalyst': { cats: { 1: 10 }, html: /var s_code=s\.t\(\);if\(s_code\)document\.write\(s_code\)/i },
'SiteEdit': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+SiteEdit/i },
'SiteEdit': { cats: { 1: 1 }, meta: { 'generator': /SiteEdit/i } },
'SMF': { cats: { 1: 2 }, html: /<script [^>]+\s+var smf_/i },
'sNews': { cats: { 1: 1 }, html: /<meta name=("|')Generator("|') [^>]+sNews/ },
'Snoobi': { cats: { 1: 10 }, html: /<script[^>]* src=("|')[^"']+snoobi\.com\/snoop\.php/ },
'sNews': { cats: { 1: 1 }, meta: { 'generator': /sNews/ } },
'Snoobi': { cats: { 1: 10 }, script: /snoobi\.com\/snoop\.php/ },
'SOBI 2': { cats: { 1: 19 }, html: /(<!\-\- start of Sigsiu Online Business Index|<div[^>]* class=("|')sobi2)/i },
'SPIP': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+SPIP/i, headers: { 'X-Spip-Cache': /.*/ } },
'SPIP': { cats: { 1: 1 }, meta: { 'generator': /SPIP/i }, headers: { 'X-Spip-Cache': /.*/ } },
'SQL Buddy': { cats: { 1: 3 }, html: /(<title>SQL Buddy<\/title>|<[^>]+onclick=("|')sideMainClick\(("|')home\.php)/i },
'Squarespace': { cats: { 1: 1 }, html: /Squarespace\.Constants\.CURRENT_MODULE_ID/i },
'Squiz Matrix': { cats: { 1: 1 }, html: /( Running (MySource|Squiz) Matrix|<meta name=("|')generator("|') [^>]+Squiz Matrix)/i, 'X-Powered-By': /Squiz Matrix/ },
'StatCounter': { cats: { 1: 10 }, html: /<script[^>]* src=("|')http:\/\/www\.statcounter\.com\/counter\/counter/i },
'SWFObject': { cats: { 1: 19 }, html: /<script[^>]+swfobject[^"']*\.js/i },
'Squiz Matrix': { cats: { 1: 1 }, meta: { 'generator': /Squiz Matrix/ }, html: / Running (MySource|Squiz) Matrix/i, 'X-Powered-By': /Squiz Matrix/ },
'StatCounter': { cats: { 1: 10 }, script: /statcounter\.com\/counter\/counter/ },
'SWFObject': { cats: { 1: 19 }, script: /swfobject.*\.js/i },
'swift.engine': { cats: { 1: 1 }, headers: { 'X-Powered-By': /swift\.engine/ } },
'Swiftlet': { cats: { 1: 1, 2: 18 }, html: /(<meta name=("|')generator("|') [^>]+Swiftlet|Powered by <a href=("|')[^>]+Swiftlet)/i, headers: { 'X-Swiftlet-Cache': /.*/, 'X-Powered-By': /Swiftlet/ } },
'Textpattern CMS': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Textpattern/i },
'Timeline': { cats: { 1: 25 }, html: /<script[^>]*src=[^>]+timeline[^>]*\.js/i, env: '/^Timeline$/' },
'Timeplot': { cats: { 1: 25 }, html: /<script[^>]*src=[^>]+timeplot[^>]*\.js/i, env: '/^Timeplot$/' },
'TomatoCart': { cats: { 1: 6 }, html: /<meta name=("|')generator("|') [^>]+TomatoCart/i },
'Swiftlet': { cats: { 1: 1, 2: 18 }, meta: { 'generator': /Swiftlet/i }, html: /Powered by <a href=("|')[^>]+Swiftlet/i, headers: { 'X-Swiftlet-Cache': /.*/, 'X-Powered-By': /Swiftlet/ } },
'Textpattern CMS': { cats: { 1: 1 }, meta: { 'generator': /Textpattern/i } },
'Timeline': { cats: { 1: 25 }, script: /timeline.*\.js/, env: '/^Timeline$/' },
'Timeplot': { cats: { 1: 25 }, script: /timeplot.*\.js/, env: '/^Timeplot$/' },
'TomatoCart': { cats: { 1: 6 }, meta: { 'generator': /TomatoCart/i } },
'Trac': { cats: { 1: 13 }, html: /(<a id=("|')tracpowered)/i },
'Tumblr': { cats: { 1: 11 }, html: /<iframe src=("|')http:\/\/www\.tumblr\.com/i, url: /^(www.)?.+\.tumblr\.com/i, headers: { 'X-Tumblr-Usec': /.*/ } },
'Twilight CMS': { cats: { 1: 1 }, headers: { 'X-Powered-CMS': /Twilight CMS/ } },
'Typekit': { cats: { 1: 17 }, html: /<script[^>]* src=("|')[^>]*use.typekit.com/i, env: /^Typekit$/ },
'TypePad': { cats: { 1: 11 }, html: /<meta name=("|')generator("|') [^>]+typepad/i, url: /^(www.)?.+\.typepad\.com/i },
'TYPO3': { cats: { 1: 1 }, html: /(<meta name=("|')generator("|') [^>]+TYPO3|<(script[^>]* src|link[^>]* href)=[^>]*fileadmin)/i, url: /\/typo3/i },
'Ubercart': { cats: { 1: 6 }, html: /<script[^>]* src=("|')[^>]*uc_cart\/uc_cart_block\.js/i },
'Typekit': { cats: { 1: 17 }, script: /use.typekit.com/, env: /^Typekit$/ },
'TypePad': { cats: { 1: 11 }, meta: { 'generator': /typepad/i }, url: /^(www.)?.+\.typepad\.com/i },
'TYPO3': { cats: { 1: 1 }, meta: { 'generator': /TYPO3/i }, html: /(<(script[^>]* src|link[^>]* href)=[^>]*fileadmin)/i, url: /\/typo3/i },
'Ubercart': { cats: { 1: 6 }, script: /uc_cart\/uc_cart_block\.js/ },
'Umbraco': { cats: { 1: 1 }, headers: { 'X-Umbraco-Version': /.+/ } },
'Underscore.js': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*underscore[^>]*\.js/i, env: /^_.VERSION$/ },
'Underscore.js': { cats: { 1: 12 }, script: /underscore.*\.js/, env: /^_.VERSION$/ },
'Vanilla': { cats: { 1: 2 }, html: /<body id=("|')(DiscussionsPage|vanilla)/i, headers: { 'X-Powered-By': /Vanilla/ } },
'Varnish': { cats: { 1: 22 }, headers: { 'X-Varnish': /.+/, 'X-Varnish-Age': /.+/, 'X-Varnish-Cache': /.+/, 'X-Varnish-Action': /.+/, 'X-Varnish-Hostname': /.+/, 'Via': /Varnish/ } },
'vBulletin': { cats: { 1: 2 }, html: /<meta name=("|')generator("|') [^>]+vBulletin/i },
'vBulletin': { cats: { 1: 2 }, meta: { 'generator': /vBulletin/i } },
'viennaCMS': { cats: { 1: 1 }, html: /powered by <a href=("|')[^>]+viennacms/i },
'Vignette': { cats: { 1: 1 }, html: /<[^>]+?=("|')(vgn\-ext|vgnext)/i },
'Vimeo': { cats: { 1: 14 }, html: /<(param|embed)[^>]+vimeo\.com\/moogaloop/i },
'VirtueMart': { cats: { 1: 6 }, html: /<div id=("|')vmMainPage/ },
'VisualPath': { cats: { 1: 10 }, html: /<script[^>]* src=("|')http:\/\/visualpath[^\/]*\.trackset\.it\/[^\/]+\/track\/include\.js("|')/ },
'VisualPath': { cats: { 1: 10 }, script: /visualpath[^\/]*\.trackset\.it\/[^\/]+\/track\/include\.js/ },
'Vox': { cats: { 1: 11 }, url: /^(www.)?.+\.vox\.com/i },
'VP-ASP': { cats: { 1: 6 }, html: /(<a[^>]+>Powered By VP\-ASP Shopping Cart<\/a>|<script[^>]* src=("|')[^>]*vs350\.js)/ },
'W3Counter': { cats: { 1: 10 }, html: /<script[^>]* src=("|')http:\/\/www\.w3counter\.com\/tracker\.js("|')>/i },
'VP-ASP': { cats: { 1: 6 }, script: /vs350\.js/, html: /<a[^>]+>Powered By VP\-ASP Shopping Cart<\/a>/ },
'W3Counter': { cats: { 1: 10 }, script: /w3counter\.com\/tracker\.js/ },
'Web Optimizer': { cats: { 1: 10 }, html: /<title [^>]*lang=("|')wo("|')>/ },
'webEdition': { cats: { 1: 1 }, html: /(<meta name=("|')generator("|') [^>]+webEdition|<meta name=("|')DC.title("|') [^>]+webEdition)/i },
'WebGUI': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+WebGUI/i },
'WebPublisher': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+WEB\|Publisher/i },
'WebsiteBaker': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+WebsiteBaker/i },
'webEdition': { cats: { 1: 1 }, meta: { 'generator': /webEdition/i, 'DC.title': /webEdition/i } },
'WebGUI': { cats: { 1: 1 }, meta: { 'generator': /WebGUI/i } },
'WebPublisher': { cats: { 1: 1 }, meta: { 'generator': /WEB\|Publisher/i } },
'WebsiteBaker': { cats: { 1: 1 }, meta: { 'generator': /WebsiteBaker/i } },
'Webtrekk': { cats: { 1: 10 }, html: /var webtrekk = new Object/ },
'Webtrends': { cats: { 1: 10 }, html: /<img[^>]+id=("|')DCSIMG("|')[^>]+webtrends/i },
'Weebly': { cats: { 1: 1 }, html: /<[^>]+class=("|')weebly/i },
'WikkaWiki': { cats: { 1: 8 }, html: /(Powered by <a href=("|')[^>]+WikkaWiki|<meta name=("|')generator("|') [^>]+WikkaWiki)/i },
'WikkaWiki': { cats: { 1: 8 }, meta: { 'generator': /WikkaWiki/ }, html: /Powered by <a href=("|')[^>]+WikkaWiki/i },
'Wolf CMS': { cats: { 1: 1 }, html: /<a href=("|')[^>]+wolfcms.org.+Wolf CMS.+inside/i },
'Woopra': { cats: { 1: 10 }, html: /<script[^>]* src=("|')[^>]*static\.woopra\.com/i },
'WordPress': { cats: { 1: 1, 2: 11 }, html: /(<link rel=("|')stylesheet("|') [^>]+wp-content|<meta name=("|')generator("|') [^>]+WordPress)/i },
'xajax': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*xajax_core\.js/i },
'Woopra': { cats: { 1: 10 }, script: /static\.woopra\.com/ },
'WordPress': { cats: { 1: 1, 2: 11 }, meta: { 'generator': /WordPress/i }, html: /<link rel=("|')stylesheet("|') [^>]+wp-content/i },
'xajax': { cats: { 1: 12 }, script: /xajax_core.*\.js/i },
'XenForo': { cats: { 1: 2 }, html: /(jQuery\.extend\(true, XenForo|Forum software by XenForo&trade;|<!\-\-XF:branding)/ },
'XiTi': { cats: { 1: 10 }, html: /<[^>]+src=("|')[^>]+xiti.com\/hit.xiti/i },
'XMB': { cats: { 1: 2 }, html: /<!-- Powered by XMB/i },
'XOOPS': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+XOOPS/i },
'xtCommerce': { cats: { 1: 6 }, html: /(<meta name=("|')generator("|') [^>]+xt:Commerce|<div class=("|')copyright("|')>.+<a[^>]+>xt:Commerce)/i },
'XOOPS': { cats: { 1: 1 }, meta: { 'generator': /XOOPS/i } },
'xtCommerce': { cats: { 1: 6 }, meta: { 'generator': /xt:Commerce/ }, html: /<div class=("|')copyright("|')>.+<a[^>]+>xt:Commerce/i },
'YaBB': { cats: { 1: 2 }, html: /Powered by <a href=("|')[^>]+yabbforum/i },
'Yahoo! Web Analytics': { cats: { 1: 10 }, html: /<script[^>]* src=("|')[^>]*http:\/\/d\.yimg\.com\/mi\/ywa\.js/ },
'Yandex.Metrika': { cats: { 1: 10 }, html: /<script[^>]* src=("|')[^"']+mc\.yandex\.ru\/metrika\/watch\.js("|')/ },
'Yahoo! Web Analytics': { cats: { 1: 10 }, script: /d\.yimg\.com\/mi\/ywa\.js/ },
'Yandex.Metrika': { cats: { 1: 10 }, script: /mc\.yandex\.ru\/metrika\/watch\.js/ },
'YouTube': { cats: { 1: 14 }, html: /<(param|embed)[^>]+youtube\.com\/v/i },
'YUI Doc': { cats: { 1: 4 }, html: /<html[^>]* yuilibrary\.com\/rdf\/[0-9.]+\/yui\.rdf/i },
'YUI': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^'"]*(\/yui\/|yui\.yahooapis\.com)[^'"]*("|')/, env: /^YAHOO$/ },
'Zen Cart': { cats: { 1: 6 }, html: /<meta name=("|')generator("|') [^>]+Zen Cart/i },
'YUI': { cats: { 1: 12 }, script: /\/yui\/|yui\.yahooapis\.com/, env: /^YAHOO$/ },
'Zen Cart': { cats: { 1: 6 }, meta: { 'generator': /Zen Cart/i } },
'Zend': { cats: { 1: 18 }, headers: { 'X-Powered-By': /Zend/ } }
};
}

@ -63,7 +63,7 @@
getEnvironmentVars: function() {
self.log('getEnvironmentVars');
if ( content.document.contentType != 'text/html' ) {
if ( content.document.contentType != 'text/html' || typeof content.document.html == 'undefined' ) {
return;
}

@ -330,13 +330,49 @@ var wappalyzer = (function() {
if ( typeof self.checkUnique[appName] == 'undefined' ) {
// Scan HTML
if ( html && typeof self.apps[appName].html != 'undefined' ) {
var regex = self.apps[appName].html;
if ( regex.test(html) ) {
if ( self.apps[appName].html.test(html) ) {
self.showApp(appName, doc, href, doCount);
}
}
// Scan script tags
if ( html && typeof self.apps[appName].script != 'undefined' ) {
var
regex = /<script[^>]+src=("|')([^"']+)\1/ig,
match = []
;
while ( match = regex.exec(html) ) {
if ( self.apps[appName].script.test(match[2]) ) {
self.showApp(appName, doc, href, doCount);
break;
}
}
}
// Scan meta tags
if ( html && typeof self.apps[appName].meta != 'undefined' ) {
var
regex = /<meta[^>]+>/ig,
match = []
;
while ( match = regex.exec(html) ) {
for ( meta in self.apps[appName].meta ) {
if ( new RegExp('name=["\']' + meta + '["\']', 'i').test(match) ) {
var content = match.toString().match(/content=("|')([^"']+)("|')/i);
if ( self.apps[appName].meta[meta].test(content[2]) ) {
self.showApp(appName, doc, href, doCount);
break;
}
}
}
}
}
// Scan URL
if ( href && typeof self.apps[appName].url != 'undefined' ) {
var regex = self.apps[appName].url;