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
#501Widgets for WooCommerce Products on Elementor231,6591,4543k+Non-prefixed global variable
#502Germanized for WooCommerce232241,29670k+Non-prefixed function
#503Predictive Search for WooCommerce23514633700Output is not escaped
#504WP All Import – Product Import for WooCommerce231,47520920k+Non Singular String Literal Domain
#505StoreCustomizer – A plugin to Customize all WooCommerce Pages235871,42620k+Non-prefixed global variable
#506ShopLentor – All-in-One WooCommerce Growth & Store Enhancement Plugin237,8802,19990k+Text Domain Mismatch
#507Worth The Read238731383k+Text Domain Mismatch
#508WP BackItUp Community Edition232579896k+Non-prefixed global variable
#509Clone2324426240k+Output is not escaped
#510WP Courses LMS – Online Courses Builder, eLearning Courses, Courses Solution, Education Courses23590876500Non-prefixed function
#511WP Crowdfunding231991,6292k+Non-prefixed global variable
#512WP Editor2350233520k+Unsafe printing function
#513WP Free SSL237351,3451k+Non-prefixed global variable
#514Stripe Payment Forms by WP Full Pay – Accept Credit Card Payments, Donations & Subscriptions231,1131,8629k+Output is not escaped
#515Lead Form Data Collection to CRM232111,698400Non-prefixed global variable
#516WP-Lister Lite for Amazon233,0614,177800Output is not escaped
#517FunnelKit Automations – Email Marketing Automation and CRM for WordPress & WooCommerce239412,17920k+SQL query is not prepared
#518WP Mega Menu239927928k+Non-prefixed global variable
#519WP Migrate Lite – Migration Made Easy23369255200k+Exception output is not escaped
#520Shield Security – Smart Bot Blocking, Brute-Force Login Protection & File Scanning231,11820240k+Missing Translators Comment
#521WP STAGING – WordPress Backup, Restore, Migration & Clone231,5041,567100k+Non-prefixed global variable
#522Subscribe Forms – Beautiful Email Forms, Embedded Newsletter Forms & MailChimp Form234195422k+Non-prefixed global variable
#523Track, Analyze & Optimize by WP Tao23895756600Output is not escaped
#524Dynamic Team Manager – Team Member Showcase with grid, slider, table Elementor widget & shortcode239072,014900Non-prefixed global variable
#525Customer Support Ticket System & Helpdesk231,7191,464400Text Domain Mismatch
#526Divi Gravity Forms (WP Tools)235791,3112k+Non-prefixed global variable
#527WP Ultimate CSV Importer – WordPress Import & Export for CSV, XML & Excel231,1583,64220k+Interpolated SQL is not prepared
#528WP Webhooks – Automate repetitive tasks by creating powerful automation workflows directly within WordPress234,37689020k+Output is not escaped
#529WPMobile.App232,9831,5333k+Output is not escaped
#530WPCal.io – Easy Meeting Scheduler23694595900Direct Query
#531Comments – wpDiscuz236201,18070k+Non-prefixed global variable
#532Photo Engine (Media Organizer & Lightroom)232526502k+Direct Query
#533Masonry Gallery & Posts For Divi (WP Tools)237541,450800Non-prefixed global variable
#534WSW – Shopify WooCommerce / WordPress Integration and Migration231,4491,612600Non-prefixed global variable
#535Xpro Addons For Beaver Builder – Lite233,454640700Text Domain Mismatch
#536XT Ajax Add To Cart for WooCommerce231,0031,6901k+Non-prefixed global variable
#537XT Quick View for WooCommerce231,0791,829400Non-prefixed global variable
#538XT Variation Swatches for WooCommerce231,0511,834500Non-prefixed global variable
#539Yatra – Travel Booking & Tour Operator Software232,2263,997600Non-prefixed global variable
#540YITH Essential Kit for WooCommerce #1233971,4815k+Non-prefixed global variable
#541YITH PayPal Express Checkout for WooCommerce233871,4431k+Non-prefixed global variable
#542YITH WooCommerce Affiliates235491,5276k+Non-prefixed global variable
#543YITH WooCommerce Ajax Product Filter234631,52780k+Non-prefixed global variable
#544Youzify – BuddyPress Community, User Profile, Social Network & Membership Plugin for WordPress232,3171,7145k+Output is not escaped
#545Zephyr Project Manager236672,4541k+Non-prefixed global variable
#5461 Click Migration & Backup: Free WordPress Migration Plugin with Zero Downtime & Easy Clone24140193400Direct Query
#547A2 Optimized WP – Turbocharge and secure your WordPress site2427123160k+Missing Arg Domain
#548Anti Spam and list cleaner – AcyChecker2446288400Output is not escaped
#549AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress245,2341,4647k+Output is not escaped
#550Ad Inserter – Ad Manager & AdSense Ads244,260812300k+Output is not escaped