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
#1251AForms — Form Builder for Price Calculator & Cost Estimation28564953k+Text Domain Mismatch
#1252AJAX Login and Registration modal popup + inline form281572613k+Output is not escaped
#1253Void Contact Form 7 Widget For Elementor Page Builder282796610k+Text Domain Mismatch
#1254Code Engine – PHP Snippets, AI Functions & Automation for WordPress2812597700Non Singular String Literal Domain
#1255Contact Form by BestWebSoft – Advanced WP Contact Form Builder for WordPress2846533830k+Text Domain Mismatch
#1256Maspik – Ultimate Spam Protection2821286230k+Missing nonce verification
#1257Darklup – Enhanced WordPress Dark Mode, Dark Theme, Night Mode & Accessibility Plugin28639851k+Text Domain Mismatch
#1258Database Cleaner2813929410k+Direct Query
#1259Deposits & Partial Payments for WooCommerce – Bayna285933361k+Output is not escaped
#1260Dynamic User Directory284032561k+Output is not escaped
#1261easy.jobs – AI powered Job Listing, Job Board, Career Page, Recruitment & Hiring Solution284059244k+Missing nonce verification
#1262Educare – Students & Result Management System281,1141,043800Missing nonce verification
#1263Event Tickets Manager for WooCommerce281826551k+Non-prefixed global variable
#1264Expand Divi28911001k+Non-prefixed global variable
#1265FAPI Member28279153500Exception output is not escaped
#1266Advanced Shipping Rates for WooCommerce: Flexible Table Rate Shipping Rules281875052k+Non-prefixed global variable
#1267Friends281646791k+Non-prefixed global variable
#1268Geo Mashup287752321k+Text Domain Mismatch
#1269GS Books Showcase – Display Books in Grid, Slider & More | Library for WordPress2855437500Non-prefixed global variable
#1270Photo Gallery – GT3 Image Gallery & Gutenberg Block Gallery2838417510k+Text Domain Mismatch
#1271GTmetrix for WordPress28109708k+Output is not escaped
#1272HootKit284291,2958k+Non-prefixed global variable
#1273IdeaPush28283298700Output is not escaped
#1274Kadence Starter Templates — Predesigned Website Templates28312215200k+Missing Arg Domain
#1275Kama Thumbnail2880479k+Output is not escaped
#1276Laposta Signup Basic28276672k+Output is not escaped
#1277Loginfy – Custom Login Page Customizer283383982k+Output is not escaped
#1278Maven Algolia28148896k+Non Singular String Literal Domain
#1279Media Hygiene: Remove or Delete Unused Images and More!286543095k+Non Singular String Literal Domain
#1280درگاه پرداخت بانک ملت ووکامرس28611302k+Request data is not unslashed
#1281MetForm – Contact Form, Survey, Quiz, & Custom Form Builder for Elementor2862246600k+Non-prefixed global variable
#1282My Sticky Bar – Floating Notification Bar & Sticky Header (formerly myStickymenu)28164441100k+Non-prefixed global variable
#1283Notification – Custom Notifications and Alerts for WordPress2818621910k+Non-prefixed global variable
#1284Notification for Telegram28189934k+Output is not escaped
#1285Opal Service28339329900Non-prefixed global variable
#1286Order Tracking – WordPress Status Tracking Plugin286197733k+Unsafe printing function
#1287Perfect Brands for WooCommerce2811214340k+Non-prefixed constant
#1288افزونه حمل و نقل ووکامرس | پست پیشتاز، تیپاکس و پیک موتوری2813119020k+Missing nonce verification
#1289PHP Browser Detection286849600Non-prefixed function
#1290Pixel Gallery Addons for Elementor – Easy Grid, Creative Gallery, Drag and Drop Grid, Custom Grid Layout, Portfolio Gallery281462595k+Post Not In exclude
#1291Pixelgrade Assistant281,3481602k+Text Domain Mismatch
#1292Pixelonetry Companion28427147600Text Domain Mismatch
#1293Autopay287693343k+Text Domain Mismatch
#1294Podcast Importer SecondLine283561694k+Text Domain Mismatch
#1295Product Sync for WooCommerce28158375400Direct Query
#1296PushAlert – Web Push Notifications for WordPress and WooCommerce28196631k+curl curl setopt
#1297Payment Plugins for PayPal WooCommerce2823224680k+Non-prefixed hook name
#1298Query Wrangler28628229700Output is not escaped
#1299Rating by BestWebSoft28509218400Text Domain Mismatch
#1300ReDi Restaurant Reservation – Instant Restaurant Booking & Table Reservation System281,013239800Unsafe printing function