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
#1601SmartBill Facturare si Gestiune314211645k+Text Domain Mismatch
#1602Staatic – Static Site Generator for WordPress314201952k+SQL query is not prepared
#1603Swatchly – Product Variation Swatches for WooCommerce315402145k+Output is not escaped
#1604Team Builder – Team Member Showcase With Grid and slider, Compatible With Elementor, Gutenberg314592827k+Non Singular String Literal Domain
#1605WP Testimonials3118345510k+Non-prefixed global variable
#1606Themify Store Locator31244125500Text Domain Mismatch
#1607Tutor LMS Elementor Addons3122745330k+Non-prefixed global variable
#1608Big File Uploads – Increase Maximum File Upload Size3110192100k+Output is not escaped
#1609Ultimate Posts Widget313098610k+Output is not escaped
#1610User Spam Remover31115141k+Output is not escaped
#1611Web Push Notifications – Webpushr3116929310k+Output is not escaped
#1612Project Manager – AI Powered Project Management, Task Management, Kanban Board & Time Tracker31639356k+Interpolated SQL is not prepared
#1613Widget Options – Advanced Conditional Visibility for Gutenberg Blocks & Classic Widgets31837295100k+Unsafe printing function
#1614Return Refund and Exchange For WooCommerce31247134k+Non-prefixed global variable
#1615WCPOS – Point of Sale (POS) plugin for WooCommerce31752265k+Nonce verification recommended
#1616Worldline Global Online Pay for WooCommerce3116086500Missing direct file access protection
#1617Discussion Board – WordPress Forum Plugin311051532k+Request data is not unslashed
#1618WP Easy Uploader31202113500Non Singular String Literal Domain
#1619WPGatsby31125553k+Text Domain Mismatch
#1620WP Simple Booking Calendar3133738020k+Output is not escaped
#1621WP125311781843k+Unsafe printing function
#1622WPForms – AI Form Builder for WordPress – Contact Forms, Payment Forms, Survey Form, Quiz & More311673325m+Non-prefixed global variable
#1623One to one user Chat by WPGuppy3174187700Non-prefixed global variable
#1624WPOrLogin – Custom Login, Social Login, Limit Attempts, Hide Login & reCAPTCHA314832172k+Unsafe printing function
#1625Dynamic XML Sitemaps Generator for Google317541720k+Non-prefixed global variable
#1626YAHMAN Add-ons314681411k+Output is not escaped
#1627YITH Color and Label Variations for WooCommerce313931,4289k+Non-prefixed global variable
#1628YITH WooCommerce Brands Add-On313931,4259k+Non-prefixed global variable
#1629YITH WooCommerce Catalog Mode313801,41860k+Non-prefixed global variable
#1630YITH WooCommerce Featured Video313831,4343k+Non-prefixed global variable
#1631YITH Frequently Bought Together for WooCommerce313891,4528k+Non-prefixed global variable
#1632YITH WooCommerce Order & Shipment Tracking313801,4207k+Non-prefixed global variable
#1633YITH Request a Quote for WooCommerce314081,48110k+Non-prefixed global variable
#1634YITH WooCommerce Tab Manager313951,4294k+Non-prefixed global variable
#1635Zendesk Support for WordPress31195882k+Output is not escaped
#1636PayPal Zettle POS for WooCommerce31302444k+Exception output is not escaped
#1637ACME Divi Modules3257335400Text Domain Mismatch
#1638ActiveDEMAND321571611k+Output is not escaped
#1639Admin Menu Editor32159233300k+Non-prefixed global variable
#1640Advanced Access Manager – Access Governance for WordPress3284962100k+Output is not escaped
#1641Affiliate Coupons – Coupon Display Manager – Excellent Tool for Affiliate Marketers32183611k+Output is not escaped
#1642AI Alt Text Generator3276241k+Missing Translators Comment
#1643All in One Time Clock Lite – Tracking Employee Time Has Never Been Easier32325102600Missing Arg Domain
#1644annasta Filters for WooCommerce321,0734412k+Text Domain Mismatch
#1645Aqua Page Builder323201142k+Output is not escaped
#1646Arile Super323283513k+Non-prefixed global variable
#1647aThemes Blocks321921,0346k+Non-prefixed global variable
#1648Author Avatars List/Block32851354k+Non-prefixed hook name
#1649Auto YouTube Importer323381731k+Text Domain Mismatch
#1650Avadanta Companion321,318542k+Text Domain Mismatch