missing_direct_file_access_protection

Missing direct file access protection

A PHP file in the plugin can be loaded directly instead of through WordPress.

medium weight

Why It Shows Up

Plugin Check found a PHP file without an early guard such as an ABSPATH check. Without that guard, a browser or script can request the file by path.

Why It Matters

Direct access can run code outside the normal WordPress bootstrap, expose output, or trigger assumptions about loaded functions, permissions, and request context.

How to Fix

  • Add a guard near the top of PHP files that are not intended to be requested directly.
  • Use `if ( ! defined( 'ABSPATH' ) ) { exit; }` before the file performs work or sends output.
  • Keep template partials and bootstrap files protected too, not only the main plugin file.

Notes

  • Files that are deliberately public endpoints should route through WordPress APIs or explicitly validate the request before doing work.

Affected Plugins

RankPluginScoreErrorsWarningsInstallsAddedUpdatedTop Issue
#1401Themify – WooCommerce Product Filter2964314520k+Output is not escaped
#1402Tilda-publishing2921978700Output is not escaped
#1403Post Grid Gutenberg Blocks – PostX2911840440k+Non-prefixed global variable
#1404Under Construction, Coming Soon & Maintenance Mode2927729210k+Text Domain Mismatch
#1405Visualizer – Tables & Charts Manager with Built-in AI Generator2934833120k+Output is not escaped
#1406weMail – Email Marketing, Newsletter Builder & Email Automations for WooCommerce292766810k+Missing direct file access protection
#1407Wenprise Alipay Gateway For WooCommerce2911368700Exception output is not escaped
#1408Widget for Yelp Reviews291471582k+Output is not escaped
#1409Product Carousel Slider & Grid Ultimate for WooCommerce297191226k+Text Domain Mismatch
#1410Sofortueberweisung Gateway for Woocommerce2910471700Output is not escaped
#1411Global Payments SecureSubmit Gateway29199443500Non-prefixed class
#1412Woostify Sites Library2922919820k+Text Domain Mismatch
#1413WP Popular Posts2977300100k+Non-prefixed global variable
#1414WP Google Analytics Events – No-Code Custom Event Tracking for Google Analytics291181285k+Output is not escaped
#1415WP Magazine Modules Lite291526745k+Non-prefixed global variable
#1416WP Subscribe2979797k+Non-prefixed class
#1417WPComplete293833331k+Output is not escaped
#1418XML for Google Merchant Center29523123k+Non-prefixed global variable
#1419PublishPress Blocks – Block Controls, Block Visibility, Block Permissions3023941720k+Non-prefixed global variable
#1420Aitasi Coming Soon305161861k+Output is not escaped
#1421All in One Addons For WPBakery Page Builder (formerly Visual Composer)301,0841501k+Output is not escaped
#1422Analytics Insights – Google Analytics Dashboard for WordPress3024117010k+Unsafe printing function
#1423ApplyOnline – Application Form Builder and Manager303452442k+Output is not escaped
#1424Contact Form 7 Connector303241965k+Text Domain Mismatch
#1425Arile Extra3053757010k+Non-prefixed global variable
#1426AutoWP – AI Content Writer & Rewriter305483701k+Text Domain Mismatch
#1427Private groups305833161k+Unsafe printing function
#1428Blockons – Gutenberg blocks for WordPress and WooCommerce websites3069205700Non-prefixed global variable
#1429BrightEdge Autopilot3010831600curl curl setopt
#1430Sliding Cart for WooCommerce by FunnelKit – Skip Cart & Reach WooCommerce Checkout Faster3030643430k+Non-prefixed global variable
#1431Classic Addons – WPBakery Page Builder301,2452633k+Text Domain Mismatch
#1432Classified Listing Toolkits30431,8594k+Non-prefixed global variable
#1433Colete-Online30776346600Text Domain Mismatch
#1434ContentBot AI Writer (AI Content)3031769500rand rand
#1435Cryptocurrency Donation Box – Bitcoin & Crypto Donations30334284500Output is not escaped
#1436Custom Search by BestWebSoft – WordPress Custom Search Plugin30454228900Text Domain Mismatch
#1437DethemeKit for Elementor3033522830k+Output is not escaped
#1438Easy Affiliate Links301861987k+Missing direct file access protection
#1439Easy Custom Auto Excerpt30841666k+Non-prefixed global variable
#1440EasyParcel Shipping– All-in-one Shipping Solution, Real-Time Shipping Rates3037608600Non-prefixed global variable
#1441Element Invader – Template Kits for Elementor302741303k+Output is not escaped
#1442Email Templates Customizer and Designer for WordPress and WooCommerce3025034920k+Non-prefixed global variable
#1443Epeken All Kurir for Woocommerce305901,246500Missing nonce verification
#1444Exclusive Addons for Elementor303,63026350k+Text Domain Mismatch
#1445Export Plugins and Templates30143331k+file system operations fread
#1446PiWeb Export Customers Users & Guest customer to CSV for WooCommerce30173751k+Text Domain Mismatch
#1447FormLift for Keap (Legacy) Web Forms30162315400Request data is not unslashed
#1448Formzu WP301671633k+Text Domain Mismatch
#1449GlobalPayments Gateway Provider for WooCommerce306401721k+Text Domain Mismatch
#1450Kargo Takip, Kargo SMS, İlçe Mahalle Sözleşme by Hezarfen30702972k+Non-prefixed global variable