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
#1BulletProof Security05,0484,94920k+Output is not escaped
#2Intercom060716k+Non-prefixed function
#3Live Shopping & Shoppable Videos For WooCommerce079174400Non-prefixed global variable
#4Plugin Check (PCP)012814010k+Non-prefixed global variable
#5Themify Builder95,3342,1715k+Text Domain Mismatch
#6JetBackup – Backup, Restore & Migrate101,567156200k+Exception output is not escaped
#7Easy WP SMTP – WordPress SMTP and Email Logs: Gmail SMTP, Office 365, Outlook, Custom SMTP, and more1545166500k+Database parameter is not escaped
#8Visual Composer Website Builder168232040k+Non-prefixed global variable
#9MDTF – Meta Data and Taxonomies Filter161,5501,9561k+Non-prefixed global variable
#10AnyComment174454495k+Output is not escaped
#11RestroPress – Online Food Ordering System175343,2071k+Non-prefixed global variable
#12Efí Bank17886553400Exception output is not escaped
#13Shopping Cart & eCommerce Store178,03817,4643k+Non-prefixed global variable
#14wpForo Forum174,3063,02620k+Unsafe printing function
#15WPtouch – Make your WordPress Website Mobile-Friendly171,46632550k+Text Domain Mismatch
#16Administrator Z182,061799400Output is not escaped
#17JetFormBuilder — Dynamic Blocks Form Builder182,1201,61580k+Text Domain Mismatch
#18Pagopar – WooCommerce Gateway185301,215400Non-prefixed global variable
#19Property Hive181,9576,0273k+Missing nonce verification
#20WPPizza – A Restaurant Plugin184,6892,7031k+Text Domain Mismatch
#21Block Slider – Responsive Image Slider, Video Slider & Post Slider195551,2913k+Non-prefixed global variable
#22Advanced File Manager – Ultimate File Manager for WordPress And Document Library Solution191,227892100k+Exception output is not escaped
#23GiveWP – Donation Plugin and Fundraising Platform193,4173,563100k+Output is not escaped
#24Go Fetch Jobs (for WP Job Manager)191,4101,741700Non-prefixed global variable
#25Leaflet Maps Marker (Google Maps, OpenStreetMap, Bing Maps)193,2753,2289k+Output is not escaped
#26Matomo Analytics – Powerful, Privacy-First Insights for WordPress191,975892100k+Exception output is not escaped
#27Netgsm193343081k+Setting is missing a sanitization callback
#28Verified Reviews (Avis Vérifiés)196711,136700Non-prefixed global variable
#29Razorpay Payment Button Plugin19486982k+Exception output is not escaped
#30Really Simple Security – Simple and Performant Security (formerly Really Simple SSL)195313783m+Missing Translators Comment
#31Membership Plugin – Kadence Memberships195,0853,0039k+Text Domain Mismatch
#32Scrollsequence – Cinematic Scroll Image Animation Plugin198781,5283k+Non-prefixed global variable
#33SendPress Newsletters192,2931,4221k+Output is not escaped
#34SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments195341,16180k+Non-prefixed global variable
#35WP Email Template193443452k+Exception output is not escaped
#36WP Import Export Lite1973797940k+Non-prefixed global variable
#37WP Directory Kit191,5022,6412k+Non-prefixed global variable
#38WPOSS阿里云对象存储19269315900Non-prefixed namespace
#39WPQiNiu七牛云对象存储19138612400Non-prefixed global variable
#40AweBooking – Hotel Booking System203095141k+Non-prefixed global variable
#41Brizy – Page Builder2058572670k+Output is not escaped
#42Broadstreet20434273800Output is not escaped
#43Cost Calculator Builder2032376620k+Non-prefixed global variable
#44SysBasics Customize My Account for WooCommerce – Live My Account Customizer207439118k+Non-prefixed global variable
#45Download Monitor204231,36780k+Non-prefixed hook name
#46Ebook Store204051,065700Non-prefixed global variable
#47Event Espresso – Event Registration & Ticketing Sales2012,6982,135600Text Domain Mismatch
#48Event Organiser201,10454420k+Text Domain Mismatch
#49EventPrime – Events Calendar, Bookings and Tickets208464,2117k+Non-prefixed global variable
#50GoUrl Bitcoin Payment Gateway & Paid Downloads & Membership201,832720700Non Singular String Literal Domain