What is WordPress Directory Protection? Block PHP in Uploads
Learn why WordPress directory protection is essential for security. Discover how blocking PHP execution in uploads prevents webshell attacks and malware infections.
WordPress directory protection is one of the most effective yet underutilized security measures. By preventing PHP execution in vulnerable directories, you can stop most webshell attacks and malware infections in their tracks.
Understanding the WordPress Directory Structure
WordPress uses a specific directory structure that serves different purposes:
- wp-admin/ - Administration dashboard files
- wp-includes/ - Core WordPress libraries and functions
- wp-content/ - Themes, plugins, and uploaded content
- wp-content/uploads/ - Media files uploaded through WordPress
- wp-content/plugins/ - Installed plugins
- wp-content/themes/ - Installed themes
Each directory has different security requirements, and some should never execute PHP code.
Why Block PHP Execution?
The Uploads Directory Problem
The wp-content/uploads directory is designed for images, documents, and media files. It should never contain executable PHP code. However, this is exactly where attackers try to upload webshells.
How Attacks Work
- Attacker finds a vulnerability in a plugin or theme
- Exploits it to upload a PHP file to the uploads folder
- Accesses the file directly:
yoursite.com/wp-content/uploads/evil.php - PHP executes, giving attacker full server control
With directory protection enabled, step 4 fails—the server returns an error instead of executing the PHP code.
Common Attack Vectors
- Vulnerable contact form plugins: Allowing PHP uploads through forms
- Image upload vulnerabilities: PHP code hidden in image metadata
- File manager exploits: Misconfigured file managers allowing PHP uploads
- Theme option uploads: Logo or background upload features exploited
Which Directories Need Protection?
Critical: wp-content/uploads
The uploads directory should NEVER execute PHP. There is no legitimate reason for PHP files here.
Important: wp-content/cache
Cache directories contain generated static files. PHP execution here is unnecessary and potentially dangerous.
Recommended: wp-includes
Core WordPress files shouldn't be accessed directly. Direct access to wp-includes is usually an attack.
Optional: wp-admin/css, js, images
Static asset directories in wp-admin don't need PHP execution.
How Directory Protection Works
Directory protection uses .htaccess rules (Apache/LiteSpeed) or nginx configuration to instruct the server not to execute PHP files in protected directories.
Apache/LiteSpeed .htaccess
# Disable PHP execution
<Files *.php>
deny from all
</Files>
More Comprehensive Rule
# Block all PHP execution
<FilesMatch ".(php|phtml|php3|php4|php5|php7|phps|phar)$">
Order Deny,Allow
Deny from all
</FilesMatch>
WP Folder Shield's Directory Protection
WP Folder Shield makes directory protection simple with one-click activation:
Protected Directories
- wp-content/uploads - Block all PHP execution
- wp-content/cache - Block PHP execution
- wp-includes - Block direct PHP access
- wp-admin/css, js, images - Block PHP execution
Key Features
- One-click protection: Enable protection without editing files
- Protection verification: Confirms rules are working
- Automatic restoration: Restores rules if they're removed
- Cross-server support: Works on Apache, LiteSpeed, nginx
Protection Status Dashboard
The WP Folder Shield dashboard shows protection status for each directory with clear indicators for protected, unprotected, and error states.
Important Considerations
Plugin Compatibility
Most plugins don't need PHP execution in uploads. However, some poorly coded plugins might break. WP Folder Shield detects and warns about potential conflicts.
Multisite Networks
On multisite installations, directory protection applies to all sites. WP Folder Shield handles multisite structures correctly.
Server Restrictions
Some managed hosts restrict .htaccess modifications. WP Folder Shield detects these restrictions and provides guidance.
Beyond Directory Protection
Directory protection is one layer of defense. Combine it with:
- File upload scanning: Check uploads before they reach the server
- Web application firewall: Block exploit attempts
- Malware scanning: Detect any threats that slip through
- File integrity monitoring: Alert on unauthorized changes
WP Folder Shield provides all these protections in one comprehensive security solution. Enable directory protection with a single click and prevent webshell attacks.
Written by Sarah Chen
WP Folder Shield Team