Added PHP, CakePHP, Ruby, Mongrel, CouchDB, Arc Forum, Google Sites

main
ElbertF 13 years ago
parent bef9b89ab0
commit 27023c2460

@ -1,62 +0,0 @@
if ( typeof 'wappalyzer' != 'undefined' ) {
wappalyzer.evaluateCustomApps = function(feedback) {
wappalyzer.log('evaluateCustomApps');
if ( wappalyzer.customApps ) {
try {
var customAppsJSON = JSON.parse(wappalyzer.customApps);
for ( appName in customAppsJSON ) {
wappalyzer.apps[appName] = {};
// Icon
if ( typeof(customAppsJSON[appName].icon) == 'string' ) {
wappalyzer.apps[appName].icon = customAppsJSON[appName].icon;
}
else {
wappalyzer.apps[appName].icon = 'chrome://wappalyzer/skin/app_icons/_placeholder.ico';
}
// Categories
if ( typeof(customAppsJSON[appName].categories) == 'object' ) {
wappalyzer.apps[appName].cats = {};
for ( i in customAppsJSON[appName].categories ) {
wappalyzer.apps[appName].cats[i] = parseInt(customAppsJSON[appName].categories[i]);
}
}
// HTML
if ( typeof(customAppsJSON[appName].html) == 'string' ) {
wappalyzer.apps[appName].html = new RegExp(customAppsJSON[appName].html, 'i');
}
// URL
if ( typeof(customAppsJSON[appName].url) == 'string' ) {
wappalyzer.apps[appName].url = new RegExp(customAppsJSON[appName].url, 'i');
}
// Headers
if ( typeof(customAppsJSON[appName].headers) == 'object' ) {
wappalyzer.apps[appName].headers = {};
for ( headerName in customAppsJSON[appName].headers ) {
wappalyzer.apps[appName].headers[headerName] = new RegExp(customAppsJSON[appName].headers[headerName], 'i');
}
}
}
if ( feedback ) {
alert('Ok');
}
}
catch(e) {
wappalyzer.log('JSON error in custom applications');
if ( feedback ) {
alert('Error: malformed JSON');
}
}
}
};
}

@ -1,147 +0,0 @@
if ( typeof(wappalyzer) == 'undefined' )
{
var wappalyzer = {};
wappalyzer.log = function(message)
{
if ( message )
{
var consoleService = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);
consoleService.logStringMessage("Wappalyzer: " + message);
}
};
}
wappalyzer.evaluateCustomApps = function(customApps, feedback)
{
wappalyzer.log('evaluateCustomApps');
var appsAdded = {};
if ( customApps || wappalyzer.customApps )
{
try
{
var customAppsJSON = JSON.parse(feedback ? customApps : wappalyzer.customApps);
for ( appName in customAppsJSON )
{
wappalyzer.apps[appName] = {
custom: true
};
appsAdded[appName] = true;
// Icon
if ( typeof(customAppsJSON[appName].icon) == 'string' )
{
wappalyzer.apps[appName].icon = customAppsJSON[appName].icon;
}
else
{
wappalyzer.apps[appName].icon = 'chrome://wappalyzer/skin/app_icons/_placeholder.ico';
}
// Categories
if ( typeof(customAppsJSON[appName].categories) == 'object' )
{
wappalyzer.apps[appName].cats = {};
for ( i in customAppsJSON[appName].categories )
{
var id = parseInt(customAppsJSON[appName].categories[i]);
if ( typeof(wappalyzer.cats[id]) != 'undefined' )
{
wappalyzer.apps[appName].cats[i] = id;
}
}
}
// HTML
if ( typeof(customAppsJSON[appName].html) == 'string' )
{
wappalyzer.apps[appName].html = new RegExp(customAppsJSON[appName].html, 'i');
}
// URL
if ( typeof(customAppsJSON[appName].url) == 'string' )
{
wappalyzer.apps[appName].url = new RegExp(customAppsJSON[appName].url, 'i');
}
// Headers
if ( typeof(customAppsJSON[appName].headers) == 'object' )
{
wappalyzer.apps[appName].headers = {};
for ( headerName in customAppsJSON[appName].headers )
{
wappalyzer.apps[appName].headers[headerName] = new RegExp(customAppsJSON[appName].headers[headerName], 'i');
}
}
}
if ( feedback )
{
var text = '';
var count = 0;
for ( appName in appsAdded )
{
text += ' \n\n' + appName;
if ( typeof(wappalyzer.apps[appName].cats) == 'object' )
{
for ( i in wappalyzer.apps[appName].cats )
{
text += ' [' + wappalyzer.cats[wappalyzer.apps[appName].cats[i]].name + ']';
}
}
text += '\n Icon [' + ( wappalyzer.apps[appName].icon != 'chrome://wappalyzer/skin/app_icons/_placeholder.ico' ? 'Yes' : 'No' ) + ']';
text +=
' HTML [' + ( typeof(wappalyzer.apps[appName].html) == 'object' ? 'Yes' : 'No' ) + ']' +
' URL [' + ( typeof(wappalyzer.apps[appName].url) == 'object' ? 'Yes' : 'No' ) + ']'
;
text += ' Headers';
if ( typeof(wappalyzer.apps[appName].headers) == 'object' )
{
for ( header in wappalyzer.apps[appName].headers )
{
text += ' [' + header + ']';
}
}
else
{
text += ' [No]';
}
count ++;
}
alert('Ok. Found ' + count + ' application(s):' + text);
}
}
catch(e)
{
wappalyzer.log('evaluateCustomApps: malformed JSON');
if ( feedback )
{
alert('Error: malformed JSON.');
}
}
}
else
{
if ( feedback )
{
alert('Nothing to evaluate!');
}
}
};

@ -33,6 +33,8 @@
<preference id="wappalyzer-cat23" name="extensions.wappalyzer.cat23" type="bool"/> <preference id="wappalyzer-cat23" name="extensions.wappalyzer.cat23" type="bool"/>
<preference id="wappalyzer-cat24" name="extensions.wappalyzer.cat24" type="bool"/> <preference id="wappalyzer-cat24" name="extensions.wappalyzer.cat24" type="bool"/>
<preference id="wappalyzer-cat25" name="extensions.wappalyzer.cat25" type="bool"/> <preference id="wappalyzer-cat25" name="extensions.wappalyzer.cat25" type="bool"/>
<preference id="wappalyzer-cat26" name="extensions.wappalyzer.cat26" type="bool"/>
<preference id="wappalyzer-cat27" name="extensions.wappalyzer.cat27" type="bool"/>
<preference id="wappalyzer-tracking" name="extensions.wappalyzer.tracking" type="bool"/> <preference id="wappalyzer-tracking" name="extensions.wappalyzer.tracking" type="bool"/>
</preferences> </preferences>
@ -144,6 +146,12 @@
<hbox align="center"> <hbox align="center">
<checkbox preference="wappalyzer-cat25" id="wappalyzer-option-cat25" label="&wappalyzer.cat25;"/> <checkbox preference="wappalyzer-cat25" id="wappalyzer-option-cat25" label="&wappalyzer.cat25;"/>
</hbox> </hbox>
<hbox align="center">
<checkbox preference="wappalyzer-cat26" id="wappalyzer-option-cat26" label="&wappalyzer.cat26;"/>
</hbox>
<hbox align="center">
<checkbox preference="wappalyzer-cat27" id="wappalyzer-option-cat27" label="&wappalyzer.cat27;"/>
</hbox>
</row> </row>
</rows> </rows>
</grid> </grid>

@ -29,3 +29,5 @@ pref('extensions.wappalyzer.cat22', true);
pref('extensions.wappalyzer.cat23', true); pref('extensions.wappalyzer.cat23', true);
pref('extensions.wappalyzer.cat24', true); pref('extensions.wappalyzer.cat24', true);
pref('extensions.wappalyzer.cat25', true); pref('extensions.wappalyzer.cat25', true);
pref('extensions.wappalyzer.cat26', true);
pref('extensions.wappalyzer.cat27', true);

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -54,6 +54,7 @@
'Blogger': { cats: { 1: 11 }, meta: { 'generator': /blogger/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 }, 'Bugzilla': { cats: { 1: 13 }, html: /<[^>]+(id|title|name)=("|')bugzilla/i },
'Burning Board': { cats: { 1: 2 }, html: /<a href=('|")[^>]+woltlab\.com.+Burning Board/i }, 'Burning Board': { cats: { 1: 2 }, html: /<a href=('|")[^>]+woltlab\.com.+Burning Board/i },
'CakePHP': { cats: { 1: 18 }, headers: { 'Set-Cookie': /CAKEPHP=/ }, meta: { 'application-name': /CakePHP/ } },
'Chameleon': { cats: { 1: 1 }, meta: { 'generator': /chameleon\-cms/i } }, 'Chameleon': { cats: { 1: 1 }, meta: { 'generator': /chameleon\-cms/i } },
'chartbeat': { cats: { 1: 10 }, html: /function loadChartbeat\(\) {/i }, 'chartbeat': { cats: { 1: 10 }, html: /function loadChartbeat\(\) {/i },
'Chamilo': { cats: { 1: 21 }, meta: { 'generator': /Chamilo/i }, headers: { 'X-Powered-By': /Chamilo/ } }, 'Chamilo': { cats: { 1: 21 }, meta: { 'generator': /Chamilo/i }, headers: { 'X-Powered-By': /Chamilo/ } },
@ -150,6 +151,7 @@
'Modernizr': { cats: { 1: 12 }, script: /modernizr.*\.js/ }, '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 }, '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 }, script: /mollom\.js/, html: /<img[^>]+\/.mollom\/.com/i }, 'Mollom': { cats: { 1: 16 }, script: /mollom\.js/, html: /<img[^>]+\/.mollom\/.com/i },
'Mongrel': { cats: { 1: 22 }, headers: { 'Server': /Mongrel/ } },
'Moodle': { cats: { 1: 21 }, html: /(var moodleConfigFn = function\(me\)|<img[^>]+moodlelogo)/i }, 'Moodle': { cats: { 1: 21 }, html: /(var moodleConfigFn = function\(me\)|<img[^>]+moodlelogo)/i },
'Moogo': { cats: { 1: 1 }, script: /kotisivukone.js/ }, 'Moogo': { cats: { 1: 1 }, script: /kotisivukone.js/ },
'MooTools': { cats: { 1: 12 }, script: /mootools.*\.js/, env: /^MooTools$/ }, 'MooTools': { cats: { 1: 12 }, script: /mootools.*\.js/, env: /^MooTools$/ },
@ -194,6 +196,7 @@
'Redmine': { cats: { 1: 13 }, meta: { 'description': /Redmine/i }, html: /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\("/ }, 'Reinvigorate': { cats: { 1: 10 }, html: /reinvigorate\.track\("/ },
'RequireJS': { cats: { 1: 12 }, script: /require.*\.js/ , env: /^requirejs$/}, 'RequireJS': { cats: { 1: 12 }, script: /require.*\.js/ , env: /^requirejs$/},
'Ruby': { cats: { 1: 27 }, headers: { 'Server': /(Mongrel|WEBrick|Ruby)/ } },
'S.Builder': { cats: { 1: 1 }, meta: { 'generator': /S\.Builder/i } }, 'S.Builder': { cats: { 1: 1 }, meta: { 'generator': /S\.Builder/i } },
's9y': { cats: { 1: 1 }, meta: { 'generator': /Serendipity/i } }, 's9y': { cats: { 1: 1 }, meta: { 'generator': /Serendipity/i } },
'script.aculo.us': { cats: { 1: 12 }, script: /(scriptaculous|protoaculous)\.js/, env: /^Scriptaculous$/ }, 'script.aculo.us': { cats: { 1: 12 }, script: /(scriptaculous|protoaculous)\.js/, env: /^Scriptaculous$/ },
@ -225,9 +228,9 @@
'Twitter Bootstrap': { cats: { 1: 18 }, script: /twitter\.github\.com\/bootstrap/, html: /<link[^>]+bootstrap[^>]+css/, env: /^Twipsy$/ }, 'Twitter Bootstrap': { cats: { 1: 18 }, script: /twitter\.github\.com\/bootstrap/, html: /<link[^>]+bootstrap[^>]+css/, env: /^Twipsy$/ },
'Typekit': { cats: { 1: 17 }, script: /use.typekit.com/, env: /^Typekit$/ }, 'Typekit': { cats: { 1: 17 }, script: /use.typekit.com/, env: /^Typekit$/ },
'TypePad': { cats: { 1: 11 }, meta: { 'generator': /typepad/i }, url: /^(www.)?.+\.typepad\.com/i }, '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 }, 'TYPO3': { cats: { 1: 1 }, meta: { 'generator': /TYPO3/i }, html: /(<(script[^>]* src|link[^>]* href)=[^>]*fileadmin|<!--TYPO3SEARCH)/i, url: /\/typo3/i },
'Ubercart': { cats: { 1: 6 }, script: /uc_cart\/uc_cart_block\.js/ }, 'Ubercart': { cats: { 1: 6 }, script: /uc_cart\/uc_cart_block\.js/ },
'Umbraco': { cats: { 1: 1 }, headers: { 'X-Umbraco-Version': /.+/ } }, 'Umbraco': { cats: { 1: 1 }, meta: { 'generator': /umbraco/i }, headers: { 'X-Umbraco-Version': /.+/ }, html: /powered by <a href=[^>]+umbraco/i },
'Underscore.js': { cats: { 1: 12 }, script: /underscore.*\.js/ }, 'Underscore.js': { cats: { 1: 12 }, script: /underscore.*\.js/ },
'UserRules': { cats: { 1: 13 }, html: /var _usrp =/ , env: /^\_usrp$/ }, 'UserRules': { cats: { 1: 13 }, html: /var _usrp =/ , env: /^\_usrp$/ },
'Vanilla': { cats: { 1: 2 }, html: /<body id=("|')(DiscussionsPage|vanilla)/i, headers: { 'X-Powered-By': /Vanilla/ } }, 'Vanilla': { cats: { 1: 2 }, html: /<body id=("|')(DiscussionsPage|vanilla)/i, headers: { 'X-Powered-By': /Vanilla/ } },

@ -153,7 +153,6 @@ var wappalyzer = wappalyzer || (function() {
for ( var header in w.apps[app].headers ) { for ( var header in w.apps[app].headers ) {
if ( data[type][header] != null && w.apps[app][type][header].test(data[type][header]) ) { if ( data[type][header] != null && w.apps[app][type][header].test(data[type][header]) ) {
if ( app == 'PHP' ) alert('x');
apps.push(app); apps.push(app);
break; break;
@ -199,9 +198,7 @@ var wappalyzer = wappalyzer || (function() {
} }
// Per URL // Per URL
var index = w.detected[url].indexOf(app); if ( w.detected[url].indexOf(app) === -1 ) w.detected[url].push(app);
if ( index === -1 ) w.detected[url].push(app);
}); });
delete apps, data; delete apps, data;

Loading…
Cancel
Save