plesk / wappspector
Command-line interface utility to analyze the file structure of a web hosting server and identify the frameworks and CMS used in the websites hosted on it.
Installs: 3 711
Dependents: 0
Suggesters: 0
Security: 0
Stars: 11
Watchers: 22
Forks: 0
Open Issues: 0
Type:project
Requires
- php: >=8.0
- league/flysystem: ^3.0
- php-di/php-di: ^6.0
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^10
- psr/log: ^2.0
- rector/rector: ^0.18.5
- slevomat/coding-standard: ^8.8.0
- squizlabs/php_codesniffer: ^3.7.2
- symfony/console: ^5.0
README
Command-line interface utility to analyze the file structure of a web hosting server and identify the frameworks and CMS used in the websites hosted on it.
Matchers
Technology & Frameworks
Technology | Version | Check type |
---|---|---|
PHP | - | Any *.php file |
Ruby | 2, 3 | Rakefile in root dir |
Python | 2, 3 | Any *.py file |
Laravel | 8, 9, 10 | artisan file in root dir |
Symfony | 3, 4, 5, 6 | symfony.lock file in root dir |
CodeIgniter | 4 | spark file in root dir |
CakePHP | 3, 4 | bin/cake file |
Yii | 2 | yii file in root dir |
Composer | - | composer.json file in root dir |
.NET | - | Any *.dll file |
Node.js | - | package.json file in root dir |
CMS
Name | Major version | Check type |
---|---|---|
WordPress | 2 - 6 | Existence and contents of wp-includes/version.php |
Joomla! | 1 - 4 | Existence and contents of configuration.php in root dir |
Drupal | 6 - 10 | Existence and contents of /modules/system/system.info or /core/modules/system/system.info.yml |
PrestaShop | 1.6, 1.7.8, 8.0 | Existence and contents of /config/settings.inc.php |
TYPO3 | 7.6, 8.7, 9, 10, 11, 12 | Existence and contents of /typo3/sysext/core/Classes/Core/SystemEnvironmentBuilder.php or /typo3/sysext/core/Classes/Information/Typo3Version.php or /t3lib/config_default.php |
How to build phar
composer global require clue/phar-composer composer install php -d phar.readonly=off ~/.composer/vendor/bin/phar-composer build .
Run the created wappspector.phar
:
./wappspector.phar ./test-data
Changing matchers order
To change the matchers order or to disable some of them, you should override matchers
entry of DI container.
$diContainer = \Plesk\Wappspector\DIContainer::build(); $matchers = $diContainer->get('matchers'); array_unshift($matchers, \Some\New\Matcher::class); $diContainer->set('matchers', $matchers);
or
// only detect WordPress installs $diContainer = \Plesk\Wappspector\DIContainer::build(); $diContainer->set('matchers', [\Plesk\Wappspector\Matchers\Wordpress::class]);
Testing
./vendor/bin/phpunit