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
#551Ad Inserter – Ad Manager & AdSense Ads244,260812300k+Output is not escaped
#552Ivory Search – WordPress Search Plugin241,1731,688100k+Non-prefixed global variable
#553Advanced Contact form 7 DB247641,96070k+Non-prefixed global variable
#554Advanced iFrame248871,12040k+Non-prefixed global variable
#555Affiliates Manager241,2686538k+Unsafe printing function
#556All Embed – Multi-Source Embed Widgets for Elementor247291,310500Non-prefixed global variable
#557All-In-One Security (AIOS) – Security and Firewall245521,2281m+Non-prefixed global variable
#558Starter Templates – AI-Powered Templates for Elementor & Gutenberg241254011m+Non-prefixed hook name
#559Multi Page Auto Advance for Gravity Forms246531,3352k+Non-prefixed global variable
#560TermsFeed AutoTerms: Privacy Policy Generator, Cookie Consent, GDPR, CCPA, Terms & Conditions, Disclaimers, Cookies Policy, EULA2493916170k+Non Singular String Literal Domain
#561AutomatorWP – Automator plugin for no-code automations, webhooks & custom integrations in WordPress241,7051,3937k+Text Domain Mismatch
#562Awesome Support – WordPress HelpDesk & Support Plugin242251,2396k+Non-prefixed global variable
#563Popup Box – Create Countdown, Coupon, Video, Contact Form Popups244821,25350k+Non-prefixed global variable
#564bBlocks – Essential Gutenberg Blocks & Patterns Collection246561,511700Non-prefixed global variable
#565Backuply – Backup, Restore, Migrate and Clone24704551700k+Non-prefixed global variable
#566Banner Management For WooCommerce248651,8622k+Non-prefixed global variable
#567Barcode Scanner (+Mobile App) – Inventory manager, Order fulfillment system, POS (Point of Sale)241,8651,0891k+Text Domain Mismatch
#568Product Feed Manager For WooCommerce – Sell on 200+ Online Marketplaces242,3173,37510k+slow db query meta key
#569Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More243429306k+Non-prefixed global variable
#570Arigato Autoresponder and Newsletter241,318769500Text Domain Mismatch
#571BlockMeister – Block Pattern Builder245801,4051k+Non-prefixed global variable
#572Branda – White Label & Branding, Free Login Page Customizer243,17482020k+Text Domain Mismatch
#573Brands for WooCommerce247876746k+Text Domain Mismatch
#574Brave – Create Popup, Optins, Lead Generation, Survey, Sticky Elements & Interactive Content2423729120k+error log print r
#575BuddyPress Group Email Subscription24513361k+Non-prefixed function
#576Buttonizer – Floating Menus, Sticky Buttons, & Popup Builder245761,34470k+Non-prefixed global variable
#577Calculated Fields Form – AI Form Builder for WordPress – Contact, Payment, Quote, Quiz & More2431961140k+Non-prefixed global variable
#578Event Calendar – Calendar241,1111,2622k+Text Domain Mismatch
#579Captivate Sync241735571k+Non-prefixed global variable
#580Categorify – WordPress Media Library Category & File Manager245731,3851k+Non-prefixed global variable
#581Message Filter for Contact Form 7241,0571,5941k+Non-prefixed global variable
#582Business Essentials for Contact Form 7246744038k+Text Domain Mismatch
#583WOW Styler for CF7 – Visual Styler for Contact Form 7 Forms245341,5593k+Non-prefixed global variable
#584Kognetiks Chatbot for WordPress246511,486600Non-prefixed global variable
#585Church Admin241,5544,207900Direct Query
#586CleanTalk Anti-Spam. Spam Firewall & Bot protection248211,099200k+Missing nonce verification
#587Smart Online Order for Clover241,7461,2461k+Text Domain Mismatch
#588CM Pop-Up – Create engaging popups to capture attention and boost interaction244664088k+Output is not escaped
#589CMP – Coming Soon & Maintenance Plugin by NiteoThemes249491,336200k+Non-prefixed global variable
#590Complianz – GDPR/CCPA Cookie Consent244874031m+Missing Arg Domain
#591RepairBuddy – Repair Shop CRM & Booking Plugin for WordPress248283,665500Request data is not unslashed
#592CF7 Apps – Honeypot, Database, Redirection, Webhook, and Addons for Contact Form 7241,0341,396300k+Non-prefixed global variable
#593Contact Form by Supsystic241,9136336k+Non Singular String Literal Domain
#594Contact Form to DB by BestWebSoft – Messages Database Plugin For WordPress245293571k+Text Domain Mismatch
#595Contact Widgets For Elementor all the contact links you need in one place249081,188500Non-prefixed global variable
#596WPBot – ChatBot Conversational Forms241,2541,2262k+Text Domain Mismatch
#597CRM Perks Forms – WordPress Form Builder248195771k+Output is not escaped
#598Custom CSS247036571k+Output is not escaped
#599Custom Twitter Feeds – A Tweets Widget or X Feed Widget24446922100k+Output is not escaped
#600WP Customer Area243,30694110k+Text Domain Mismatch