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
#3601Authenticator4159441k+Output is not escaped
#3602Avatar Manager4129415k+Unsafe printing function
#3603Backend Designer4150111k+Output is not escaped
#3604Beam me up Scotty – Back to Top Button4171381k+Output is not escaped
#3605Beautiful Cookie Consent Banner41337640k+Non-prefixed global variable
#3606Book Now4175141k+Output is not escaped
#3607Bop Search Box Item Type For Nav Menus4152141k+Output is not escaped
#3608Bulk Delete Comments4115615k+Direct Query
#3609Bulk Auto Image Title Attribute (Image Title tag) optimizer (Image SEO)4116371k+Missing nonce verification
#3610Bulk Images to Posts415551k+Unsafe printing function
#3611Buzzsprout Podcasting4175135k+Non Singular String Literal Domain
#3612Cache control by Cacholong418730500Non Singular String Literal Domain
#3613Carbon Copy4164893k+Text Domain Mismatch
#3614Easy Social Like Box – Popup – Sidebar Widget41217917k+Text Domain Mismatch
#3615Categorized Tag Cloud4144171k+Output is not escaped
#3616Category Wise Search41589500Output is not escaped
#3617Čeština: zalomení řádků418686k+Text Domain Mismatch
#3618Conditional Fields for Contact Form 74110653100k+Output is not escaped
#3619Submission DOM tracking for Contact Form 7411448400Text Domain Mismatch
#3620Checklist416225400Text Domain Mismatch
#3621clickskeks.at Cookiebanner412118500Unsafe printing function
#3622Collapsed Archives415441k+Output is not escaped
#3623Colorful Categories4120202k+Output is not escaped
#3624Comments Like Dislike41172205k+Non Singular String Literal Domain
#3625Contact Form 7 Widget417042k+Output is not escaped
#3626Controlled Admin Access41224010k+Nonce verification recommended
#3627CurrencyConverter416296700Non Singular String Literal Domain
#3628Custom Meta412329700Output is not escaped
#3629Custom Post Type Cleanup4170121k+Output is not escaped
#3630Custom Recent Posts Widget416341k+Output is not escaped
#3631Dashboard Notepad41293410k+Missing nonce verification
#3632Debug Bar41642520k+Output is not escaped
#3633Developer Loggers for Simple History414628400Text Domain Mismatch
#3634Dinamize414165500Output is not escaped
#3635DigitalOcean Spaces Sync41808500Text Domain Mismatch
#3636Dropdown multisite selector418213900Unsafe printing function
#3637GDPR tools: Cookie notice + privacy416786k+Unsafe printing function
#3638DSGVO Youtube4148291k+Unsafe printing function
#3639Duplicate Post Page Menu & Custom Post Type41351110k+Text Domain Mismatch
#3640Easy Random Quotes414214500Output is not escaped
#3641Edit Lock414722500Non Singular String Literal Domain
#3642Email Address Encoder411098100k+wp function not compatible with requires wp
#3643Embed Chessboard411039600Text Domain Mismatch
#3644Essential Form – The lightest plugin for contact forms, ultra lightweight and no spam412153500Missing nonce verification
#3645Payment Gateway of PayPal for WooCommerce41441847k+Nonce verification recommended
#3646Extra User Details4184151k+Non Singular String Literal Domain
#3647Heroic Favicon Generator4110476k+Output is not escaped
#3648Feature A Page Widget416653k+Output is not escaped
#3649Featured Audio41549400Output is not escaped
#3650Featured Image Generator4131161k+Output is not escaped