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
#451Read More WP235701,3111k+Non-prefixed global variable
#452Real Estate Manager – Property Listing and Agent Management236062,301600Non-prefixed global variable
#453Real 3D Flipbook – 3D FlipBook, PDF FlipBook, PDF Viewer, PDF Embedder239081,37710k+Non-prefixed global variable
#454Redirection23523457100k+Non-prefixed global variable
#455Restaurant & Cafe Addon for Elementor238891,3261k+Non-prefixed global variable
#456Revive.so – Bulk Rewrite and Republish Blog Posts23332228700Text Domain Mismatch
#457Robo Gallery – Photo & Image Slider231,29153040k+Output is not escaped
#458Manago AI & Leadoo AI236444291k+Unsafe printing function
#459Schema231,17324540k+Text Domain Mismatch
#460SecuPress with Simple SSL – Simple and Performant Security231,6971,60140k+Non-prefixed global variable
#461Secure Custom Fields232401,37080k+Non-prefixed function
#462SEO Redirection Plugin – 301 Redirect Manager2327272710k+Non-prefixed global variable
#463Seraphinite Post .DOCX Source231,156110900Output is not escaped
#464Seriously Simple Podcasting2354862930k+Non-prefixed hook name
#465Shipment Tracker for Woocommerce234775762k+Missing Arg Domain
#466Local Google Analytics for WordPress – caches external requests235511993k+Output is not escaped
#467Tag, Category, and Taxonomy Manager – Autotagger Automatically Add Terms2340586950k+Nonce verification recommended
#468Simple URLs – Link Cloaking, Product Displays, and Affiliate Link Management232952984k+Non-prefixed global variable
#469Image Optimizer, Resizer and CDN – Sirv236161,0041k+Output is not escaped
#470Site Reviews231,62660460k+Output is not escaped
#471Slider Hero with Video Background, Animation231,5651,2533k+Text Domain Mismatch
#472Slider by 10Web – Responsive Image Slider235,81497610k+Output is not escaped
#473Smart Marketing SMS and Newsletters Forms232,2321,0151k+Text Domain Mismatch
#474Smart Slider 323261268800k+Non-prefixed global variable
#475SportsPress – Sports Club & League Manager234592,24610k+Non-prefixed global variable
#476StreamWeasels Twitch Integration235551,4651k+Non-prefixed global variable
#477Strong Testimonials2319439390k+Nonce verification recommended
#478Super Video player – Fully Customizable Video Player with Playlist231,1351,6342k+Non-prefixed global variable
#479teachPress237441,5872k+SQL query is not prepared
#480Legal Terms and Conditions Popup for User Login and WooCommerce Checkout23524237700Output is not escaped
#481The Events Calendar233,5093,850700k+Text Domain Mismatch
#482The Pack Elementor addon235561,1802k+Non-prefixed global variable
#483The Post Grid – Shortcode, Gutenberg Blocks and Elementor Addon for Post Grid231051,013100k+Non-prefixed global variable
#484ThemeHunk Customizer233,9685826k+Text Domain Mismatch
#485Travelpayouts237691106k+Output is not escaped
#486Trinity Audio – Text to Speech AI audio player to convert content into audio231192272k+Non-prefixed global variable
#487Directory Listings WordPress plugin – uListing239471,5731k+Non-prefixed global variable
#488Ultimate Fields23371458600Alternative PHP tag found
#489Product Options and Price Calculation Formulas for WooCommerce – Uni CPO232,5141,9291k+Output is not escaped
#490User Menus – Nav Menu Visibility235311,29880k+Non-prefixed global variable
#491UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP236942,43920k+Non-prefixed hook name
#492VK All in One Expansion Unit231,026518100k+Output is not escaped
#493W3 Total Cache23307678900k+Non-prefixed global variable
#494Wallet System for WooCommerce – Digital Wallet, Buy Now Pay Later (BNPL), Instant Cashback, Referral program, Partial & Subscription Payments231211,2272k+Non-prefixed global variable
#495Cart PDF for WooCommerce235311721k+Exception output is not escaped
#496Product Table & List Builder For WooCommerce231,3622,06010k+Non-prefixed global variable
#497Checkout with Zelle on Woocommerce236371,4043k+Non-prefixed global variable
#498WHMCS Bridge232474724k+Nonce verification recommended
#499Widgets on Pages238091,30620k+Non-prefixed global variable
#500Billingo Plus integráció WooCommerce-hez231,119507900Text Domain Mismatch