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
#401Kenta Companion236571,4192k+Non-prefixed global variable
#402King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder231,8343,87710k+Non-prefixed global variable
#403Masteriyo LMS – LMS Course Builder, Quizzes & Certificates231902,1225k+Non-prefixed global variable
#404License Manager for WooCommerce231297976k+Nonce verification recommended
#405Like Button Rating ♥ LikeBtn231,2316174k+Unsafe printing function
#406Link Whisper Free233,8825,30330k+Text Domain Mismatch
#407Listdom: AI-powered Business Directory with Classifieds Ads Listings234,6733,3361k+Output is not escaped
#408LLMagnet – AI Visibility & AI SEO for Claude, ChatGPT & More236271,798400Non-prefixed global variable
#409Custom Login Page Customizer236871,40890k+Non-prefixed global variable
#410Login With Ajax – Fast Logins, 2FA, Redirects2362352010k+Output is not escaped
#411Master Slider – Responsive Touch Slider2380040860k+Output is not escaped
#412MasterStudy LMS WordPress Plugin – for Online Courses and Education231,4194,87510k+Non-prefixed global variable
#413Media Library File Download236151,2861k+Non-prefixed global variable
#414Media Library Assistant231,1313,75970k+Nonce verification recommended
#415MediaPress239045834k+Output is not escaped
#416Menu Image, Icons made easy235911,406100k+Non-prefixed global variable
#417Order Bump for WooCommerce231,7201,562600Output is not escaped
#418Moloni239013562k+Missing Arg Domain
#419MotoPress Appointment Booking232,3628572k+Text Domain Mismatch
#420Restaurant Menu and Food Ordering233858532k+Non-prefixed global variable
#421MP3 Audio Player – Music Player, Podcast Player & Radio by Sonaar234,06548820k+Text Domain Mismatch
#422MStore API – Create Native Android & iOS Apps On The Cloud236187643k+SQL query is not prepared
#423MultiParcels Shipping For WooCommerce231963624k+Mixed line endings
#424MPG – Multiple Page Generator, Bulk Landing Pages & Programmatic SEO234855802k+Missing nonce verification
#425MyWorks Sync for WooCommerce & QuickBooks Online232,2929,1015k+Non-prefixed global variable
#426ND Shortcodes236212,42620k+Non-prefixed global variable
#427News Kit Addons For Elementor23694194k+Post Not In exclude
#428Simple Newsletter Plugin – Noptin237159310k+Non-prefixed global variable
#429Next Active Directory Integration236832842k+Exception output is not escaped
#430Photo Gallery, Sliders, Proofing and Themes – NextGEN Gallery232,129993400k+Text Domain Mismatch
#431NicheTable – Responsive Comparison Table Block236831,307700Non-prefixed global variable
#432Nirweb support23254617800Request data is not unslashed
#433NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization2331663990k+Output is not escaped
#434Ocean Extra231,4942,107500k+Non-prefixed global variable
#435Issues and Series for Newspapers, Magazines, Publishers, Writers233467102k+Nonce verification recommended
#436Patchstack – WordPress & Plugins Security2310748950k+Missing nonce verification
#437PayPal Brasil para WooCommerce235543281k+Unsafe printing function
#438Photo Gallery by 10Web – Mobile-Friendly Image Gallery234,1591,553100k+Output is not escaped
#439Gallery PhotoBlocks239041,3453k+Non-prefixed global variable
#440ExpressTechSoftwares Discord Add-on for Paid Memberships Pro23454449700Text Domain Mismatch
#441AI Popup231,224636400Text Domain Mismatch
#442Post to Google My Business (Google Business Profile)238451,45210k+Non-prefixed global variable
#443Postie2340825910k+Output is not escaped
#444PowerPress Podcasting plugin by Blubrry234,8072,39420k+Output is not escaped
#445Pricing Table by Supsystic231,29944710k+Non Singular String Literal Domain
#446Primary Addon for Elementor237651,3067k+Non-prefixed global variable
#447Print Anywhere & Create PDFs of Order Receipts, Invoices, Labels & More.231,4854441k+Text Domain Mismatch
#448Print My Blog – Print, PDF, & eBook Converter WordPress Plugin231,0771,6608k+Non-prefixed global variable
#449Protect Admin236061,3002k+Non-prefixed global variable
#450Radio Station by netmix® – Manage and play your Show Schedule in WordPress!239343,6191k+Non-prefixed global variable