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
#2651MailerLite – Signup forms (official)36430158100k+Output is not escaped
#2652Order Status History for WooCommerce362101711k+Output is not escaped
#2653Ovation Elements362339910k+Non-prefixed global variable
#2654Ozh' Admin Drop Down Menu36125433k+Output is not escaped
#2655PayPal Currency Converter BASIC for WooCommerce3634820400Output is not escaped
#2656PDF Forms Filler for CF736185793k+Text Domain Mismatch
#2657PDF Forms Filler for WPForms3616154600Text Domain Mismatch
#2658Peter’s Post Notes362241023k+Output is not escaped
#2659Photonic Gallery & Lightbox for Flickr, SmugMug & Others3618011710k+Missing Translators Comment
#2660Photoswipe Masonry Gallery3657476k+Non Singular String Literal Text
#2661Plugins Garbage Collector (Database Cleanup)36325110k+Missing nonce verification
#2662ActiveCampaign Postmark for WordPress36477550k+Text Domain Mismatch
#2663افزونه رسمی ترب36428620k+Exception output is not escaped
#2664Quick 301 Redirects36891205k+Non-prefixed global variable
#2665Rara One Click Demo Import361229820k+Missing Translators Comment
#2666Better Find and Replace – AI-Powered Suggestions366712940k+Missing direct file access protection
#2667Recent Posts3610630500Text Domain Mismatch
#2668Responsive Testimonials3625232500Text Domain Mismatch
#2669Optimize Database after Deleting Revisions3664412760k+Output is not escaped
#2670Search & Replace365053100k+Missing nonce verification
#2671Search Everything361657710k+Text Domain Mismatch
#2672Speed Optimizer – The All-In-One Performance-Boosting Plugin3645961m+Non-prefixed hook name
#2673Shadowbox JS36246141k+Unsafe printing function
#2674ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution3663669100k+Non-prefixed global variable
#2675Simple Banner – Easily add multiple Banners/Bars/Notifications/Announcements to the top or bottom of your website362165050k+Output is not escaped
#2676StaticPress368879500Output is not escaped
#2677Stripe Tax – Sales tax automation for WooCommerce36976130k+Exception output is not escaped
#2678Subscribe to Comments3612916310k+Output is not escaped
#2679Supreme Modules Lite – Divi Theme, Extra Theme and Divi Builder3616240200k+Output is not escaped
#2680SureContact – Newsletters, Email Marketing, Automation, Revenue Tracking & CRM363141326k+Text Domain Mismatch
#2681Sync QCloud COS3663109600Non-prefixed function
#2682Bulk Product Editor plugin allows you to create and edit your WooCommerce products and categories with Google Sheets.3650105400Direct Query
#2683Advance Side Cart, Ajax Cart & Floating Cart for WooCommerce36371216k+Non-prefixed global variable
#2684The Events Calendar Shortcode & Block367012710k+Non-prefixed hook name
#2685Toolbox for Asgaros Forum36150841k+Output is not escaped
#2686Plugin Name: Traffic Counter Widget Plugin3671107600Output is not escaped
#2687Zoho ZeptoMail36321105k+Request data is not unslashed
#2688TrustMate.io – WooCommerce integration362551013k+Output is not escaped
#2689FOMO & Social Proof Notifications by TrustPulse – Best WordPress FOMO Plugin361043910k+Output is not escaped
#2690Ubigeo de Perú para Woocommerce y WordPress361912354k+Non-prefixed function
#2691Slider Ultimate3629480500Output is not escaped
#2692underConstruction36986040k+Unsafe printing function
#2693PDF Flipbook, WPBakery Addon – Unreal FlipBook36400921k+Non Singular String Literal Domain
#2694User Roles and Capabilities362271328k+Output is not escaped
#2695VK Post Author Display368711310k+Non-prefixed function
#2696Wanderlust OCA para WooCommerce3615755500Text Domain Mismatch
#2697WC Builder – WooCommerce Page Builder for WPBakery36647501k+Text Domain Mismatch
#2698WC Pickup Store36245522k+Output is not escaped
#2699Quantity Plus Minus Button for WooCommerce36838410k+Output is not escaped
#2700Shipping with Venipak for WooCommerce36239611k+Text Domain Mismatch