These aren’t zero-days—just the five things you’ve likely overlooked.
1. Missing security headers that leave browsers unprotected
Security headers are small HTTP response fields that instruct browsers how to handle your site’s content. Missing or misconfigured headers—like Content-Security-Policy
, Strict-Transport-Security
, or X-Frame-Options
—leave the door open for attacks like cross-site scripting (XSS), clickjacking, and protocol downgrades. Implementing a well-defined set of headers strengthens client-side defenses and reduces your exposure to common browser-based attacks.
2. Outdated plugins and libraries with known vulnerabilities
Whether it’s a JavaScript library, a WordPress plugin, or a PHP module, using outdated software opens you up to known vulnerabilities that attackers can scan for and exploit automatically. These components are often forgotten during routine maintenance, even though they’re publicly indexed in vulnerability databases. Regular updates and dependency audits are critical for minimizing this surface area, especially in CMS-driven sites.
3. Dangerous .htaccess
misconfigurations exposing sensitive directories
On Apache servers, .htaccess
governs URL rewrites, access rules, and file protection. Misconfigured .htaccess
directives can accidentally expose administrative paths, allow directory listings, or override global security rules. In some cases, developers leave sensitive debug routes or backup files accessible to the public. Reviewing your .htaccess
file regularly—and understanding what each directive does—can help lock down your web root and avoid unnecessary exposure.
4. Improper cache rules that leak private content or user data
Caching is essential for performance, but poorly configured cache rules can serve sensitive content to the wrong users. For example, if a user logs in and views their private data, and the response is cached at the server or proxy level without proper controls, another visitor could receive that same cached page. It’s critical to set cache-control headers that differentiate between authenticated and public content, especially when working with reverse proxies or CDN services.
5. Exposed XML-RPC endpoint (WordPress-specific backdoor for attackers)
Many WordPress sites leave the XML-RPC interface enabled by default. While it serves legitimate purposes like remote publishing and pingbacks, it’s often exploited for brute-force attacks or distributed denial-of-service (DDoS) amplification. Attackers can use it to send thousands of login attempts or pingback requests with a single HTTP call. If your site doesn’t actively rely on XML-RPC functionality, it’s best to disable or restrict access to this endpoint entirely.