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
#1851Spiffy Calendar334732433k+Output is not escaped
#1852Spin Wheel – Interactive spinning wheel that offers coupons33680313500Unsafe printing function
#1853Split Test For Elementor33981343k+Non-prefixed global variable
#1854Simple Sticky Add To Cart For WooCommerce3340170900Text Domain Mismatch
#1855Gravity Booster – Styles & Layouts for Gravity Forms332778740k+Missing Arg Domain
#1856Sublanguage33266287700Output is not escaped
#1857Telegram Bot & Channel33182113600Unsafe printing function
#1858Testimonial Slider – Free Testimonials Slider Plugin339150700Request data is not unslashed
#1859TP Education33186303800Unsafe printing function
#1860TrackingMore Order Tracking for WooCommerce (Free plan available)3394124700Text Domain Mismatch
#1861WP Twitter Auto Publish334421714k+Output is not escaped
#1862Uix Shortcodes33246444400Non-prefixed global variable
#1863Display Posts As List, Grid, Thumbs33442241900Output is not escaped
#1864Variation Swatches for WooCommerce3346911650k+Text Domain Mismatch
#1865Multi-Carrier EasyPost Shipping Methods & Address Validation for WooCommerce3342469400Non Singular String Literal Domain
#1866Multi-Carrier Shippo Shipping Rates & Address Validation for WooCommerce33411733k+Non Singular String Literal Domain
#1867Webmention336489900Output is not escaped
#1868Website Monetization by MageNet33608720k+Output is not escaped
#1869Textmetrics33324163400Output is not escaped
#1870White Label CMS33412202200k+Unsafe printing function
#1871Rich Showcase for Google Reviews33212278100k+Output is not escaped
#1872Product Addons for Woocommerce – Product Options with Custom Fields3312411430k+Output is not escaped
#1873Min Max Control – Min Max Quantity & Step Control for WooCommerce339621510k+Non-prefixed global variable
#1874Hyyan WooCommerce Polylang Integration331412208k+Nonce verification recommended
#1875CartBounty – Save and recover abandoned carts for WooCommerce3337039910k+Output is not escaped
#1876Pay. Payment Methods for WooCommerce333181043k+Non Singular String Literal Domain
#1877PDF Invoices Italian Add-on for WooCommerce333252005k+Non Singular String Literal Domain
#1878WOW Slider331761013k+Output is not escaped
#1879WP Edit3333713740k+Unsafe printing function
#1880WP Social AutoConnect33290144400Output is not escaped
#1881EasyMedia – Increase Media Upload File Size | Role-Based Upload Limit | Increase Execution Time338213870k+Non-prefixed global variable
#1882WebToffee WP Backup and Migration331322225k+Non-prefixed global variable
#1883WP Multilang – Translation and Multilingual Plugin335311810k+Database parameter is not escaped
#1884WP MyLinks333542061k+Text Domain Mismatch
#1885WP Theme Optimizer3338880400Output is not escaped
#1886WP-UserOnline3311116110k+Output is not escaped
#1887Editor Blocks by Download Manager331741025k+Output is not escaped
#1888WPoperation Elementor Addons33891521k+Text Domain Mismatch
#1889WPReplace内容字符替换插件33209195800Non Singular String Literal Domain
#1890XML Sitemaps3365622k+Output is not escaped
#1891Video Gallery – YouTube Playlist, Channel Gallery by YotuWP3327810120k+Missing Arg Domain
#1892Zita Site Library for Elementor331071351k+Text Domain Mismatch
#1893AFS Analytics3419498600Text Domain Mismatch
#1894Advanced Custom Fields: reCAPTCHA Field3410453800Text Domain Mismatch
#1895Advanced Twenty Seventeen34247983k+Text Domain Mismatch
#1896Affilia – Affiliate Program3480170500Nonce verification recommended
#1897affiliate-toolkit – Multi-Network Affiliate & Amazon Product Display34326752k+Output is not escaped
#1898AGCA – Custom Dashboard & Login Page343504420k+Unsafe printing function
#1899All In One Favicon342146260k+Output is not escaped
#1900Arconix Shortcodes341291084k+Output is not escaped