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
#801Product Attachment for WooCommerce241,2331,7777k+Non-prefixed global variable
#802NextMove Lite – Thank You Page for WooCommerce2491685710k+Non-prefixed global variable
#803wallee24331220400Exception output is not escaped
#804Country Based Payments for WooCommerce245311,2953k+Non-prefixed global variable
#805EU VAT Assistant for WooCommerce241,7424955k+Non Singular String Literal Domain
#806European VAT Compliance Assistant for WooCommerce245153173k+Output is not escaped
#807Store Exporter – Export WooCommerce Products, Orders, Subscriptions, Customers244801,2727k+Non-prefixed function
#808WPML Multilingual & Multicurrency for WooCommerce241,4531,618100k+SQL query is not prepared
#809WC Shop Sync – Square Payment Gateway and Product Synchronization for WooCommerce247611,612900Non-prefixed global variable
#810WordLift – AI powered SEO – Schema24278949400Non-prefixed hook name
#811Yoast SEO – Advanced SEO with real-time guidance and built-in AI2415938610m+Non-prefixed global variable
#812WP Admin Audit241,0517811k+error log print r
#813WP-Appbox244183902k+Missing Arg Domain
#814Auto Affiliate Links243814163k+Output is not escaped
#815WP Contact Slider – Contact Form Slider Widget241,3552,5899k+Non-prefixed global variable
#816WP Discourse241031141k+Nonce verification recommended
#817WP Fastest Cache – WordPress Cache Plugin245417531m+Unsafe printing function
#818Iptanus File Upload245091,32510k+Non-prefixed function
#819WP Frontend Delete Account245371,3784k+Non-prefixed global variable
#820WP Hotel Booking249011,5327k+Non-prefixed global variable
#821WP Job Portal – AI-Powered Recruitment System for Company or Job Board website24781,1588k+Missing Version
#822WP Layouts243491463k+Text Domain Mismatch
#823WP-Members Membership Plugin2466938250k+Output is not escaped
#824WP Notification Bell247361,591700Non-prefixed global variable
#825پارسی دیت – Parsi Date24106291100k+Non-prefixed hook name
#826WP Post Author – Author Box, Multiple Authors, Guest Authors & Custom Avatars248611,57310k+Non-prefixed global variable
#827WP Recipe Maker2449494250k+Non-prefixed global variable
#828WP RSS Aggregator – RSS Import, Feed to Post, Autoblogging, AI Content241,77739440k+Text Domain Mismatch
#829WP School Calendar241,3611,721400Non-prefixed global variable
#830WP-Stateless – Google Cloud Storage241,0364824k+Non Singular String Literal Domain
#831WP Travel – Ultimate Travel Booking System, Tour Management Engine242271,9544k+Non-prefixed hook name
#832WP Travel Engine – Tour Booking Plugin – Tour Operator Software242,0125,68920k+Non-prefixed global variable
#833Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress242,5812,109100k+Output is not escaped
#834WP User Manager – User Profile Builder & Membership2478753910k+Exception output is not escaped
#835WP Voting Contest Lite24259258400Text Domain Mismatch
#836WPAdverts – Classifieds Plugin241,3084964k+Output is not escaped
#837WPeMatico RSS Feed Fetcher241,37858710k+Output is not escaped
#838WPGSI: Spreadsheet Integration247841,5872k+Non-prefixed global variable
#839WPIDE – File Manager & Code Editor246121,39940k+Non-prefixed global variable
#840WPSpeed – WordPress Speed, Cache & Performance Optimization (Core Web Vitals, PageSpeed 100)244821892k+Output is not escaped
#841WpStream – Live Streaming, Video on Demand, Pay Per View241,7257423k+Text Domain Mismatch
#842WP Travel Engine – Elementor Widgets | Create Travel Booking Website Using WordPress and Elementor245,9072,13610k+Text Domain Mismatch
#843xili-language241,501523600Output is not escaped
#844XT Ajax Add To Cart for WooCommerce249851,6651k+Non-prefixed global variable
#845XT Variation Swatches for WooCommerce241,0331,809500Non-prefixed global variable
#846YayCurrency – WooCommerce Multi-Currency Switcher243736238k+Text Domain Mismatch
#847YITH WooCommerce Gift Cards244361,53410k+Non-prefixed global variable
#848YITH WooCommerce Product Add-Ons244602,06920k+Non-prefixed global variable
#849YITH WooCommerce Subscription244391,5387k+Non-prefixed global variable
#850YITH WooCommerce Waitlist244201,5003k+Non-prefixed global variable