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
#251Slim Jetpack222,5861,9472k+Text Domain Mismatch
#252SNS Count Cache229181208k+Non Singular String Literal Domain
#253NextScripts: Social Networks Auto-Poster222,4081,13330k+Output is not escaped
#254SSL Zen — SSL Certificate Installer & HTTPS Redirects227511,60510k+Non-prefixed global variable
#255Stylish Price List – Price Table Builder & QR Code Restaurant Menu226746783k+Output is not escaped
#256SVG Flags – Beautiful Scalable Flags For All Countries!227551,2512k+Non-prefixed global variable
#257Swift Performance Lite222,3461,3256k+Text Domain Mismatch
#258Tablesome Table – Contact Form DB – WPForms, CF7, Gravity, Forminator, Fluent222255198k+error log error log
#25910Web Booster – Website speed optimization, Cache & Page Speed optimizer2251360180k+Non-prefixed global variable
#260The Moneytizer227512711k+Text Domain Mismatch
#261Theme Editor2279868550k+Output is not escaped
#262Customize Feeds for Twitter22921714k+Non-prefixed global variable
#263Ultimate Carousel For Divi225901,566800Non-prefixed global variable
#264Ultimeter227511,3441k+Non-prefixed global variable
#265Uncanny Automator – Easy Automation, Integration, Webhooks & Workflow Builder Plugin225322,36740k+Direct Query
#266Uncanny Toolkit for LearnDash2253999420k+Output is not escaped
#267Unlimited Elements Blocks Library227081,822400Non-prefixed global variable
#268RapidLoad AI – Optimize Web Vitals Automatically2281840700Nonce verification recommended
#269Search & Replace Everything – Quick and Easy Way to Find and Replace Text, Links221,0441,79720k+Non-prefixed global variable
#270UpStream: a Project Management Plugin for WordPress22683703600Non-prefixed global variable
#271Welcart e-Commerce2210,37810,93110k+Text Domain Mismatch
#272UserFeedback – Create Interactive Feedback Form, User Surveys, and Polls in Seconds22444243200k+Text Domain Mismatch
#273Walker Core221,3511,436700Non-prefixed global variable
#274WCFM – Frontend Manager for WooCommerce224,7545,05420k+Non-prefixed global variable
#275WCFM Marketplace – Multivendor Marketplace for WooCommerce221,9341,96610k+Non-prefixed global variable
#276WCFM Membership – WooCommerce Memberships for Multivendor Marketplace2255967510k+Non-prefixed global variable
#277Wenprise WeChatPay Payment Gateway For WooCommerce22443178400Exception output is not escaped
#278Fraud Prevention For WooCommerce and EDD225721,3945k+Non-prefixed global variable
#279WooCommerce221,3596,1727m+Non-prefixed global variable
#280Advanced AJAX Product Filters222,6831,20550k+Text Domain Mismatch
#281CoDesigner – All in One Elementor WooCommerce Builder224,1317745k+Text Domain Mismatch
#282Simple Shopping Cart2279653610k+Unsafe printing function
#283ManageWP Worker225075651m+Non-prefixed class
#284WP Affiliate Disclosure221,3581,5041k+Non-prefixed global variable
#285Asset CleanUp: Page Speed Booster222,0302,485100k+Non-prefixed global variable
#286Master Accordion ( Former WP Awesome FAQ Plugin )221,7741,286700Non-prefixed global variable
#287WP Easy Pay – Payment and Donation form Builder for Square229101,8351k+Non-prefixed global variable
#288WP Express Checkout (Fast Payments via PayPal & Stripe)225916271k+Output is not escaped
#289File Manager227405201m+Unsafe printing function
#290WP Fusion Lite – Marketing Automation and CRM Integration for WordPress222756835k+Nonce verification recommended
#291WP Umbrella: Update Backup Restore & Monitoring2292191970k+Exception output is not escaped
#292Wp-Insert2226730110k+Output is not escaped
#293SchedulePress – Auto Post & Publish, Auto Social Share, Schedule Posts with Editorial Calendar & Missed Schedule Post Publisher2230724510k+Output is not escaped
#294WP Super Minify • Minify, Compress and Cache HTML, CSS & JavaScript221642578k+Non-prefixed constant
#295NotifSMS – SMS Notifications OTP & 2FA for WordPress & WooCommerce221,3531,4122k+Non-prefixed global variable
#296User Frontend: AI Powered Frontend Posting, User Directory, Profile Builder, Membership & User Registration222871,43220k+Non-prefixed global variable
#297WP-WebAuthn229573962k+Exception output is not escaped
#298WPBITS Addons For Elementor Page Builder229961,3992k+Non-prefixed global variable
#299WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell226,0022,7905k+Text Domain Mismatch
#300ShopWP22430225700Text Domain Mismatch