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
#2901Views for WPForms – Display & Edit WPForms Entries on your site frontend3780641k+Output is not escaped
#2902Innovs WPBakery Visual Composer WHMCS Elements37154242k+Text Domain Mismatch
#2903Weather Atlas Widget376301119k+Output is not escaped
#2904Widget Box Lite3731817900Output is not escaped
#2905Conditional Discounts for WooCommerce – A simple yet complete woocommerce dynamic pricing plugin37993310k+Text Domain Mismatch
#2906Piraeus Bank WooCommerce Payment Gateway371461043k+Non Singular String Literal Domain
#2907SUMIT Payment Gateway for WooCommerce37358741k+Text Domain Mismatch
#2908Variation Swatches for WooCommerce379210310k+Output is not escaped
#2909Amazon Pay for WooCommerce372911720k+Non-prefixed class
#2910WP WooCommerce Mailchimp3762856k+Non-prefixed hook name
#2911WooCommerce PayPal Payments37194110800k+Exception output is not escaped
#2912Quickpay for WooCommerce3766564k+Nonce verification recommended
#2913Wordable – Export Google Docs to WordPress3747632k+Output is not escaped
#2914Hustle – Email Marketing, Lead Generation, Optins, Popups374,8745,94290k+Non-prefixed global variable
#2915Fix Media Library3753711k+Output is not escaped
#2916WP Category Permalink3775312k+Output is not escaped
#2917WP-Cron Control3754221k+Output is not escaped
#2918WP Emmet3715483k+Output is not escaped
#2919WP Export Categories & Taxonomies3716935500Output is not escaped
#2920WPForce Logout – WordPress User Login Logout Management Plugin37567328k+Output is not escaped
#2921WP FullCalendar3732648k+Nonce verification recommended
#2922FundEngine – Donation and Crowdfunding Platform379091k+Exception output is not escaped
#2923WP Image Markers – Easy Hotspot Solution3717966700Text Domain Mismatch
#2924WP PageNavi Style37109118k+Unsafe printing function
#2925Persistent Login373381086k+Unsafe printing function
#2926WP Plugin Info Card3753376500Nonce verification recommended
#2927WP Post Signature3790131k+Unsafe printing function
#2928ReCaptcha Integration for WordPress3760669k+Output is not escaped
#2929WP Show Stats37197103400Output is not escaped
#2930Special Text Boxes3738422k+Direct Query
#2931TopNewsWp – Display Tikcer News, RSS Feed Widget and Many More3787859800Output is not escaped
#2932WPO365 | MICROSOFT 365 GRAPH MAILER371128310k+Text Domain Mismatch
#2933XT Visitor Counter37177527k+Output is not escaped
#2934Yada Wiki37207452k+Text Domain Mismatch
#2935YOURLS Link Creator3719639500Text Domain Mismatch
#2936Widget Responsive for Youtube3724077k+Output is not escaped
#2937Zakeke Interactive Product Designer for WooCommerce371861782k+Nonce verification recommended
#2938Zendesk Chat37446710k+Output is not escaped
#2939Accessibility3866611k+Non-prefixed global variable
#2940AccessibleWP – Accessibility Toolbar383812620k+Text Domain Mismatch
#2941ACF-VC Integrator38190913k+Output is not escaped
#2942Action Scheduler389213420k+Exception output is not escaped
#2943Parallax Scroll by adamrob.co.uk38102511k+Output is not escaped
#2944Add Customer for WooCommerce382291531k+Text Domain Mismatch
#2945Admin Bar Editor – Toolbar Customization with User Role based access & Custom menus3856463k+Output is not escaped
#2946Admin Bar & Dashboard Access Control3894373k+Text Domain Mismatch
#2947Admin Management Xtended382801615k+Output is not escaped
#2948Admin Tools38189103k+Unsafe printing function
#2949AdRoll for WooCommerce Stores384025600Output is not escaped
#2950Advanced Media Offloader3857935k+error log error log