Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
This plugin's installer ran successfully
Server metrics [RAM: ▲4.93MB] [CPU: ▲73.92ms] Passed 4 tests
An overview of server-side resources used by Shield Security - Smart Bot Blocking & Intrusion Prevention Security
This plugin does not affect your website's performance
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 7.71 ▲4.24 | 126.05 ▲85.96 |
Dashboard /wp-admin | 8.48 ▲5.13 | 121.15 ▲61.12 |
Posts /wp-admin/edit.php | 8.52 ▲5.17 | 118.42 ▲71.22 |
Add New Post /wp-admin/post-new.php | 11.17 ▲5.28 | 163.69 ▲77.36 |
Media Library /wp-admin/upload.php | 8.40 ▲5.17 | 137.43 ▲103.88 |
Server storage [IO: ▲18.89MB] [DB: ▲0.35MB] 67% from 3 tests
Input-output and database impact of this plugin
Please try to fix the following items
- You have illegally modified 6 files (0.29KB) outside of "wp-content/plugins/wp-simple-firewall/" and "wp-content/uploads/"
- (new file) wp-content/shield/logs-656195728f897405710042/.empty
- (new file) wp-content/shield/.htaccess
- (new file) wp-content/shield/index.php
- (new file) wp-content/shield/README.txt
- (new file) wp-content/shield/assessed.flag
- (new file) wp-content/shield/ptguard-oFGAEPPrBCOeVOgk/.empty
Filesystem: 4,414 new files
Database: 19 new tables, 16 new options
New tables |
---|
wp_icwp_wpsf_ip_rules |
wp_icwp_wpsf_crowdsec_signals |
wp_icwp_wpsf_resultitem_meta |
wp_icwp_wpsf_user_meta |
wp_icwp_wpsf_snapshots |
wp_icwp_wpsf_ips |
wp_icwp_wpsf_event |
wp_icwp_wpsf_req_logs |
wp_icwp_wpsf_reports |
wp_icwp_wpsf_botsignal |
... |
New WordPress options |
---|
widget_theysaidso_widget |
db_upgraded |
icwp_wpsf_ip_rules_cache |
aptoweb_controller_c5bfaa |
icwp_wpsf_install_date |
apto-dbs-ready-status |
theysaidso_admin_options |
aptoweb_can_trans_confirmed |
widget_recent-posts |
can_compress_scripts |
... |
Browser metrics Passed 4 tests
A check of browser resources used by Shield Security - Smart Bot Blocking & Intrusion Prevention Security
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,678 ▲916 | 15.78 ▲1.14 | 32.21 ▲30.57 | 51.03 ▲7.80 |
Dashboard /wp-admin | 2,290 ▲109 | 5.97 ▲0.22 | 108.22 ▼0.72 | 100.19 ▲56.14 |
Posts /wp-admin/edit.php | 2,168 ▲68 | 2.48 ▲0.53 | 54.83 ▲14.15 | 34.45 ▼0.54 |
Add New Post /wp-admin/post-new.php | 1,727 ▲201 | 20.15 ▼2.83 | 799.21 ▲112.51 | 36.87 ▼21.97 |
Media Library /wp-admin/upload.php | 1,462 ▲62 | 4.51 ▲0.29 | 123.91 ▲25.71 | 81.62 ▲37.57 |
Uninstaller [IO: ▲0.01MB] [DB: ▲0.34MB] 50% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
Please fix the following items
- The uninstall procedure failed, leaving 16 tables in the database
- wp_icwp_wpsf_scans
- wp_icwp_wpsf_mfa
- wp_icwp_wpsf_reports
- wp_icwp_wpsf_crowdsec_signals
- wp_icwp_wpsf_at_logs
- wp_icwp_wpsf_botsignal
- wp_icwp_wpsf_resultitem_meta
- wp_icwp_wpsf_req_logs
- wp_icwp_wpsf_ips
- wp_icwp_wpsf_resultitems
- ...
- Zombie WordPress options were found after uninstall: 16 options
- icwp_wpsf_install_date
- theysaidso_admin_options
- widget_recent-comments
- db_upgraded
- can_compress_scripts
- aptoweb_can_trans_confirmed
- icwp_wpsf_ip_rules_cache
- widget_icwp_wpsf_plugin_badge
- aptoweb_controller_c5bfaa
- widget_recent-posts
- ...
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
Good news, no errors were detected
SRP 50% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
Almost there! Just fix the following items
- 2218× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Twig\ode\\Expression\\TestExpression' not found in wp-content/plugins/wp-simple-firewall/src/lib/vendor/twig/twig/src/Node/Expression/Test/NullTest.php:24
- > PHP Fatal error
Uncaught Error: Class 'FernleafSystems\\Wordpress\\Plugin\\Core\\Databases\\Base\\Select' not found in wp-content/plugins/wp-simple-firewall/src/lib/src/Modules/Data/DB/IPs/Ops/Select.php:8
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\ServerRequestInterface' not found in wp-content/plugins/wp-simple-firewall/src/lib/vendor/nyholm/psr7/src/ServerRequest.php:16
- > PHP Fatal error
Trait 'FernleafSystems\\Utilities\\Logic\\ExecOnce' not found in wp-content/plugins/wp-simple-firewall/src/lib/src/Modules/UserManagement/Lib/Password/UserPasswordHandler.php on line 17
- > PHP Fatal error
Uncaught Error: Class 'FernleafSystems\\Wordpress\\Services\\Utilities\\Integrations\\WpHashes\\ApiBase' not found in wp-content/plugins/wp-simple-firewall/src/lib/vendor/fernleafsystems/wordpress-services/src/Utilities/Integrations/WpHashes/CrowdSourcedHashes/Base.php:5
- > PHP Fatal error
Uncaught Error: Class 'FernleafSystems\\Wordpress\\Plugin\\Core\\Databases\\Base\\Select' not found in wp-content/plugins/wp-simple-firewall/src/lib/src/Modules/HackGuard/DB/ScanItems/Ops/Select.php:7
- > PHP Fatal error
Trait 'Carbon\\Traits\\Mixin' not found in wp-content/plugins/wp-simple-firewall/src/lib/vendor/nesbot/carbon/src/Carbon/Traits/Macro.php on line 19
- > PHP Fatal error
Uncaught Error: Class 'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\Base\\Strings' not found in wp-content/plugins/wp-simple-firewall/src/lib/src/Modules/Traffic/Strings.php:9
- > PHP Fatal error
Uncaught Error: Class 'Twig\ode\\Expression\\Binary\\AbstractBinary' not found in wp-content/plugins/wp-simple-firewall/src/lib/vendor/twig/twig/src/Node/Expression/Binary/MulBinary.php:17
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\Process\\Exception\\RuntimeException' not found in wp-content/plugins/wp-simple-firewall/src/lib/vendor/symfony/process/Exception/ProcessTimedOutException.php:21
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
No browser issues were found
Optimizations
Plugin configuration 96% from 29 tests
readme.txt Passed 16 tests
Perhaps the most important file in your plugin readme.txt gets parsed in order to generate the public listing of your plugin
5 plugin tags: activity log, two-factor authentication, intrusion prevention, login protection, security
wp-simple-firewall/icwp-wpsf.php 92% from 13 tests
The principal PHP file in "Shield Security - Smart Bot Blocking & Intrusion Prevention Security" v. 18.5.7 is loaded by WordPress automatically on each request
Please take the time to fix the following:
- Main file name: Even though not officially enforced, the main plugin file should be the same as the plugin slug ("wp-simple-firewall.php" instead of "icwp-wpsf.php")
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short glimpse at programming languages used with this plugin and a check that no dangerous files are present
Good job! No executable or dangerous file extensions detected228,045 lines of code in 4,089 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 3,751 | 38,178 | 95,390 | 196,781 |
JSON | 28 | 0 | 0 | 14,849 |
PO File | 1 | 2,824 | 3,689 | 6,812 |
Twig | 203 | 715 | 89 | 6,449 |
XSD | 3 | 92 | 48 | 2,803 |
SVG | 85 | 0 | 0 | 312 |
HTML | 1 | 0 | 0 | 10 |
JavaScript | 10 | 0 | 6 | 10 |
Markdown | 1 | 6 | 0 | 10 |
CSS | 6 | 1 | 35 | 9 |
PHP code 50% from 2 tests
Analyzing cyclomatic complexity and code structure
Please tend to the following items
- Cyclomatic complexity of methods has to be reduced to less than 100 (currently 140)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.38 |
Average class complexity | 6.67 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 351.00 |
Average method complexity | 2.38 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 140.00 |
Code structure | ||
---|---|---|
Namespaces | 539 | |
Interfaces | 140 | |
Traits | 123 | |
Classes | 2,720 | |
▷ Abstract classes | 209 | 7.68% |
▷ Concrete classes | 2,511 | 92.32% |
▷ Final classes | 114 | 4.54% |
Methods | 12,596 | |
▷ Static methods | 1,329 | 10.55% |
▷ Public methods | 8,900 | 70.66% |
▷ Protected methods | 2,597 | 20.62% |
▷ Private methods | 1,099 | 8.72% |
Functions | 2,259 | |
▷ Named functions | 1,353 | 59.89% |
▷ Anonymous functions | 906 | 40.11% |
Constants | 2,004 | |
▷ Global constants | 22 | 1.10% |
▷ Class constants | 1,982 | 98.90% |
▷ Public constants | 1,843 | 92.99% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
It is recommended to compress PNG files in your plugin to minimize bandwidth usage
32 PNG files occupy 0.65MB with 0.24MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/images/banner-1500x500-transparent.png | 22.82KB | 11.12KB | ▼ 51.26% |
assets/images/pluginlogo_128x128.png | 3.37KB | 2.71KB | ▼ 19.77% |
assets/images/shield/shield-security-logo-colour-32px.png | 0.86KB | 1.06KB | 0.00% |
assets/images/shield/banner-2FA.png | 23.64KB | 11.19KB | ▼ 52.66% |
assets/images/wizard/general-shield_help.png | 61.92KB | 22.75KB | ▼ 63.26% |