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
#6601List Sub Pages9840400Missing direct file access protection
#6602Listo98407k+Missing direct file access protection
#6603Logout Clear Cookies9831500Missing direct file access protection
#6604Make Filename Lowercase98311k+Missing direct file access protection
#6605MakeITeasy Back To Top98312k+Missing direct file access protection
#6606Material Admin Theme98231k+Missing Version
#6607MB FacetWP Integration9823700trademarked term
#6608MB Yoast SEO Integration9823600trademarked term
#6609Mime Types Plus9811210k+Non-prefixed global variable
#6610Monster Widget9834800Non-prefixed hook name
#6611Custom Front Page9822900Missing direct file access protection
#6612Multi Device Switcher982920k+Non-prefixed function
#6613Multisite Language Switcher984214k+Dynamic hook name
#6614Native Lazyload98225k+Missing Version
#6615Nested Shortcodes by Outerbridge98401k+Missing direct file access protection
#6616Neve Hooks9840400Missing direct file access protection
#6617News Ticker Widget for Elementor98224k+Non-prefixed constant
#6618No Image Link98311k+Missing direct file access protection
#6619Noindex Attachment Pages9831600Missing direct file access protection
#6620oEmbed Plus98314k+Missing direct file access protection
#6621External Links in New Window / New Tab9821330k+Non-prefixed global variable
#6622OTF Regenerate Thumbnails98314k+Missing direct file access protection
#6623Password Strength for WooCommerce98301k+Missing direct file access protection
#6624Paste as Plain Text98211k+Missing direct file access protection
#6625Star Rating Block for Block Editor9841600Missing direct file access protection
#6626Plugin Detective – Troubleshooting Conflicts98635k+Missing direct file access protection
#6627Plugins List9833700trademarked term
#6628Popup Block9862700Missing direct file access protection
#6629Custom Query Blocks98613700Non-prefixed hook name
#6630Preserve Taxonomy Hierarchy9821800Missing direct file access protection
#6631Protect schema.org markup in HTML editor9830800Missing direct file access protection
#6632WebSub (FKA. PubSubHubbub)9854100k+Non-prefixed hook name
#6633QR Block9830500Missing direct file access protection
#6634Quicklink for WordPress98321k+trademarked term
#6635Re-Add Text Justify Button983020k+Missing direct file access protection
#6636Really Disable Emojis9822800Missing direct file access protection
#6637Really Simple CAPTCHA9822300k+Non-prefixed constant
#6638Really Simple Popup9824400Missing Version
#6639Relative Image URLs98311k+Missing direct file access protection
#6640Remove Archive Label9831400Missing direct file access protection
#6641Remove Author Pages98303k+Missing direct file access protection
#6642Remove Howdy9830700Missing direct file access protection
#6643Remove invalid menu items98321k+Missing Version
#6644Remove Orphan Shortcodes98311k+Missing direct file access protection
#6645Responsive Image Maps98314k+Missing direct file access protection
#6646Restore Link Title Field98403k+Missing Arg Domain
#6647Safe SVG98741m+Missing Arg Domain
#6648SameSite Cookies9832700Missing direct file access protection
#6649Save with keyboard98223k+Missing direct file access protection
#6650Search shortcode9830900Missing direct file access protection