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
#1201Online Lesson Booking27978281500Non Singular String Literal Domain
#1202Tussendoor – Open RDW27301140600Text Domain Mismatch
#1203Packlink PRO for WooCommerce2713216020k+Non-prefixed global variable
#1204picu – Online Photo Proofing Gallery276133252k+Output is not escaped
#1205PowerPack Lite for Beaver Builder272,8423757k+Text Domain Mismatch
#1206PublishPress Permissions: Control User Access for Posts, Pages, Categories, Tags2742432310k+Missing Translators Comment
#1207Quick Paypal Payments271013031k+Non-prefixed function
#1208Rate My Post – Star Rating Plugin by FeedbackWP2722236020k+Output is not escaped
#1209Restrict for Elementor275301,223900Non-prefixed global variable
#1210Robokassa payment gateway for Woocommerce27952113k+Non-prefixed global variable
#1211RS Elements Elementor Addon272,026321500Text Domain Mismatch
#1212Shipit27371209400Text Domain Mismatch
#1213Side Cart Woocommerce | Woocommerce Cart2749043980k+Output is not escaped
#1214Sign-up Sheets273253631k+Output is not escaped
#1215Simple Download Monitor2721827320k+Output is not escaped
#1216Simple Event Planner271493461k+Non-prefixed global variable
#1217Hubbub Lite – Fast, free social sharing and follow buttons2733717230k+Text Domain Mismatch
#1218Social Web Suite – Social Media Auto Post, Social Media Auto Publish2774164500Non-prefixed global variable
#1219Stream Video Player27220135600Output is not escaped
#1220SV Tracking Manager279681291k+Output is not escaped
#1221Terms & Conditions Per Product275331,336800Non-prefixed global variable
#1222Theme One Click Demo Importer27210157500Text Domain Mismatch
#1223Orbit Fox: Duplicate Page, Menu Icons, SVG Support, Cookie Notice, Custom Fonts & More27165430100k+Non-prefixed global variable
#1224Food Menu – Restaurant Menu & Online Ordering for WooCommerce27251,3203k+Non-prefixed global variable
#1225Transbank Webpay2719821110k+Non-prefixed global variable
#1226Tutor LMS – Migration Tool271393411k+Direct Query
#1227Verge3D Publishing and E-Commerce27245298400Nonce verification recommended
#1228Video Gallery for WooCommerce – Add Product Video & Featured Video271164763k+Non-prefixed global variable
#1229VOD Infomaniak2779738520k+Output is not escaped
#1230Watu Quiz271,0891,0143k+Output is not escaped
#1231WC Booster27191282800Non-prefixed global variable
#1232WDesignKit – Elementor & Gutenberg Starter Templates, Patterns, Cloud Workspace & Widget Builder2710980130k+Missing nonce verification
#1233Whols – Wholesale Prices and B2B Store Solution for WooCommerce272282352k+Output is not escaped
#1234Tabbed Category Product Listing for Woocommerce274231111k+Text Domain Mismatch
#1235Mihdan: Ajax Edit Comments271,300523400Text Domain Mismatch
#1236Content Pilot – Autoblogging & Affiliate Marketing Suite27299269900Output is not escaped
#1237WP-DBManager2738630460k+Non-prefixed global variable
#1238Email Marketing Plugin – WP Email Capture273832621k+Output is not escaped
#1239WP Events Manager2729441530k+Output is not escaped
#1240WP Hide & Security Enhancer2712437550k+Input is not sanitized
#1241WP Job Manager279358280k+Non-prefixed hook name
#1242wp-mpdf271233821k+Non-prefixed global variable
#1243WP Activity Log2796230300k+Nonce verification recommended
#1244WP Chat App27120274100k+Alternative PHP tag found
#1245Worthy – VG WORT Integration für WordPress271,3437731k+Output is not escaped
#1246WPBase Cache271891132k+Text Domain Mismatch
#1247Redirection for Contact Form 72734374200k+Non-prefixed global variable
#1248YARPP – Yet Another Related Posts Plugin27191331100k+Non-prefixed global variable
#1249Ultimate Addons for SiteOrigin285251897k+Text Domain Mismatch
#1250Vertex Addons for Elementor28232413400Output is not escaped