62% geo-security-suit

Code Review | GEO Security Suite

WordPress plugin GEO Security Suite scored 62% from 54 tests.

About plugin

  • Plugin page: geo-security-suit
  • Plugin version: 1.4
  • PHP version: 7.4.16
  • WordPress compatibility: 3.0-6.0
  • WordPress version: 6.3.1
  • First release: Jul 6, 2020
  • Latest release: Sep 26, 2022
  • Number of updates: 5
  • Update frequency: every 163.2 days
  • Top authors: antoniomel (100%)

Code review

54 tests

User reviews

3 reviews

Install metrics

10+ active / 1,075 total downloads

Benchmarks

Plugin footprint 64% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
The plugin installed gracefully, with no errors

Server metrics [RAM: ▲0.40MB] [CPU: ▲0.33ms] 75% from 4 tests

Analyzing server-side resources used by GEO Security Suite
It is recommended to improve the following
  • CPU: You should keep total CPU usage under 500.00ms (currently 981.70ms on /wp-admin/admin.php?page=plgsggeo_extensions_page)
PageMemory (MB)CPU Time (ms)
Home /3.85 ▲0.3947.15 ▲6.85
Dashboard /wp-admin3.71 ▲0.4154.22 ▼3.72
Posts /wp-admin/edit.php3.83 ▲0.4758.94 ▲9.38
Add New Post /wp-admin/post-new.php6.29 ▲0.4194.98 ▼11.18
Media Library /wp-admin/upload.php3.63 ▲0.4152.19 ▲11.00
Front-end protection /wp-admin/admin.php?page=plgsggeo_protection3.9451.45
Customize & Style /wp-admin/admin.php?page=plgsggeo_protection&tab=33.8374.39
GEO Redirect /wp-admin/admin.php?page=plgsggeo_protection&tab=53.8354.56
Get Full Version /wp-admin/admin.php?page=register_plgsggeo_upgrade_redirect3.8239.57
Security Extensions /wp-admin/admin.php?page=plgsggeo_extensions_page4.06981.70
Logs /wp-admin/admin.php?page=plgsggeo_protection&tab=23.8362.69
Settings & Support /wp-admin/admin.php?page=plgsggeo_protection&tab=43.8351.98
Backend protection /wp-admin/admin.php?page=plgsggeo_protection&tab=13.8650.40

Server storage [IO: ▲0.03MB] [DB: ▲0.00MB] 67% from 3 tests

Input-output and database impact of this plugin
Please try to fix the following items
  • The plugin illegally modified 69 files (11,420.28KB) outside of "wp-content/plugins/geo-security-suit/" and "wp-content/uploads/"
    • (new file) siteguarding_tools.php
    • (new file) wp-content/plugins/wp-geo-website-protection/css/index.html
    • (modified) .htaccess
    • (new file) wp-content/plugins/wp-geo-website-protection/css/themes/basic/assets/fonts/icons.eot
    • (new file) wp-content/plugins/wp-geo-website-protection/css/themes/default/assets/fonts/brand-icons.svg
    • (new file) wp-content/plugins/wp-geo-website-protection/css/themes/default/assets/fonts/brand-icons.eot
    • (new file) wp-content/plugins/wp-geo-website-protection/css/themes/basic/assets/fonts/icons.woff
    • (new file) wp-content/plugins/wp-geo-website-protection/css/themes/basic/assets/fonts/icons.ttf
    • (new file) wp-content/plugins/wp-geo-website-protection/css/themes/basic/assets/fonts/icons.svg
    • (modified) wp-config.php
    • ...
Filesystem: 6 new files
Database: 3 new tables, 6 new options
New tables
wp_plgsggeo_stats
wp_plgsggeo_config
wp_plgsggeo_ip
New WordPress options
widget_theysaidso_widget
can_compress_scripts
db_upgraded
widget_recent-posts
theysaidso_admin_options
widget_recent-comments

Browser metrics Passed 4 tests

This is an overview of browser requirements for GEO Security Suite
This plugin has a minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,894 ▲9413.74 ▼0.911.87 ▼0.1335.52 ▼8.79
Dashboard /wp-admin2,300 ▲945.24 ▲0.39101.85 ▼10.5983.95 ▲37.07
Posts /wp-admin/edit.php2,150 ▲612.38 ▲0.3236.46 ▲0.4835.46 ▲4.80
Add New Post /wp-admin/post-new.php1,589 ▲5624.35 ▲1.07829.23 ▲125.5742.99 ▼18.74
Media Library /wp-admin/upload.php1,442 ▲514.54 ▲0.28100.82 ▼3.1272.36 ▲29.19
Front-end protection /wp-admin/admin.php?page=plgsggeo_protection2,5052.2838.74178.99
Customize & Style /wp-admin/admin.php?page=plgsggeo_protection&tab=31,3582.3841.4273.27
GEO Redirect /wp-admin/admin.php?page=plgsggeo_protection&tab=58,3872.1547.30244.88
Get Full Version /wp-admin/admin.php?page=register_plgsggeo_upgrade_redirect2,5914.6282.1379.54
Security Extensions /wp-admin/admin.php?page=plgsggeo_extensions_page1,6461.9329.7369.95
Logs /wp-admin/admin.php?page=plgsggeo_protection&tab=21,3482.9465.2877.94
Settings & Support /wp-admin/admin.php?page=plgsggeo_protection&tab=41,2402.3343.8056.45
Backend protection /wp-admin/admin.php?page=plgsggeo_protection&tab=12,5692.2735.1471.49

Uninstaller [IO: ▲11.15MB] [DB: ▲0.00MB] 50% from 4 tests

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
Please fix the following items
  • This plugin does not fully uninstall, leaving 3 tables in the database
    • wp_plgsggeo_stats
    • wp_plgsggeo_config
    • wp_plgsggeo_ip
  • This plugin does not fully uninstall, leaving 6 options in the database
    • widget_recent-comments
    • widget_recent-posts
    • widget_theysaidso_widget
    • db_upgraded
    • theysaidso_admin_options
    • can_compress_scripts

Smoke tests 25% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | This is a shallow check for server-side errors
Please fix the following server-side errors
    • > GET request to /wp-admin/admin.php?page=plgsggeo_protection
    • > Notice in wp-content/plugins/wp-geo-website-protection/wp-geo-website-protection.php+2692
    Constant DIRSEP already defined

SRP 0% from 2 tests

🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Please fix the following
  • 1× PHP files perform the task of outputting text when accessed with GET requests:
    • > /wp-content/plugins/geo-security-suit/siteguarding_tools.php
  • 1× PHP files trigger server-side errors or warnings when accessed directly:
    • > PHP Fatal error
      Uncaught Error: Call to undefined function is_admin() in wp-content/plugins/geo-security-suit/geo-security-suit.php:10

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for browser errors
No browser errors were detected

Optimizations

Plugin configuration 93% from 29 tests

readme.txt 88% from 16 tests

You should put a lot of thought into formatting readme.txt as it is used by WordPress.org to prepare the public listing of your plugin
Attributes that require attention:
  • Screenshots: Please describe screenshot #4 in geo-security-suit/assets to your readme.txt
  • Tags: Too many tags (25 tag instead of maximum 10); only the first 5 tags are used in your directory listing
The official readme.txt is a good inspiration

geo-security-suit/geo-security-suit.php Passed 13 tests

The principal PHP file in "GEO Security Suite" v. 1.4 is loaded by WordPress automatically on each request
138 characters long description:
Adds more security for your WordPress website. Blocks unwanted traffic, protects backend page. Blocks specific countries and IP addresses.

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | This is an overview of programming languages used in this plugin; dangerous file extensions are not allowed
Everything looks great! No dangerous files found in this plugin405 lines of code in 3 files:
LanguageFilesBlank linesComment linesLines of code
PHP210537403
Pascal1002

PHP code Passed 2 tests

A short review of cyclomatic complexity and code structure
No complexity issues detected
Cyclomatic complexity
Average complexity per logical line of code0.45
Average class complexity0.00
▷ Minimum class complexity0.00
▷ Maximum class complexity0.00
Average method complexity0.00
▷ Minimum method complexity0.00
▷ Maximum method complexity0.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes0
▷ Abstract classes00.00%
▷ Concrete classes00.00%
▷ Final classes00.00%
Methods0
▷ Static methods00.00%
▷ Public methods00.00%
▷ Protected methods00.00%
▷ Private methods00.00%
Functions15
▷ Named functions15100.00%
▷ Anonymous functions00.00%
Constants6
▷ Global constants6100.00%
▷ Class constants00.00%
▷ Public constants00.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Often times overlooked, PNG files can occupy unnecessary space in your plugin
There are no PNG files in this plugin