=== SiteFort - Advanced Security, Firewall & Malware Scanner ===
Contributors: securewpteam
Tags: security, malware scanner, firewall, 2fa, vulnerability
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Fast WordPress malware scanner and firewall with cloud-assisted deep scans, 2FA, vulnerability checks, hardening and Cloudflare sync.

== Description ==

SiteFort is a performance-first WordPress malware scanner, firewall, and hardening plugin built from real malware cleanup work.

Your site stays fast during deep threat analysis. SiteFort offloads suspicious file analysis to the cloud and reduces wasted server work by blocking bad bots, scanner probes, abusive requests, and rate-limit violations.

Use SiteFort to find malware, backdoors, web shells, malicious PHP, injected scripts, SEO spam, suspicious redirects, exposed sensitive files, hidden administrator risks, breached passwords, vulnerable plugins, scanner bots, and weak hardening rules before attackers use them against you.

**Helpful links:** [Plugin Features](https://securewp.net/wordpress-security-plugin/) | [Free Remote Scan](https://securewp.net/security-checker/) | [Pricing](https://securewp.net/pricing/) | [Documentation](https://securewp.net/docs/)

#### CORE SECURITY FEATURES

* **WordPress security scanner** reviews files, user accounts, content, database safety, reputation, sensitive file exposure, server state, hidden admin risks, and known vulnerabilities.
* **Cloud-assisted malware scanner** uses fast hash checks first, then deep cloud file analysis for unknown or suspicious files to detect backdoors, web shells, malicious PHP, injected scripts, SEO spam, unsafe URLs, redirects, modified files, and exposed sensitive files.
* **Firewall protection** blocks unwanted traffic by IP, CIDR, country, bot, crawler, user agent, rate limit, scanner behavior, and threat intelligence.
* **Cloudflare WAF sync** can push supported IP, country, and user-agent rules to Cloudflare so high-volume blocks can happen before traffic reaches WordPress.
* **Easy bot filter policy** gives you Basic, Balanced, and Maximum bot protection with SEO-safe defaults for trusted search engines and social previews.
* **Login security and 2FA** protect accounts with authenticator app codes, email codes, recovery codes, custom login URLs, brute-force lockouts, CAPTCHA, weak password checks, and breached-password detection.
* **WordPress hardening** locks down XML-RPC, user enumeration, REST access, application passwords, file editing, PHP execution, sensitive files, version output, directory listing, and security headers.
* **Verified hardening rules** help confirm whether protections are actually enforced, not just switched on in a settings panel.
* **Vulnerability monitoring** checks WordPress core, plugins, and themes against known vulnerability intelligence and shows severity, affected assets, CVE references, and recommended action.
* **Audit log and Console** provide security evidence, event history, multi-site visibility, remote workflows, reports, team access, and alert routing.

#### PERFORMANCE-FIRST WORDPRESS SECURITY

Security should not make your site slower. SiteFort is designed for busy websites, WooCommerce stores, agencies, and shared or managed hosting environments where heavy scans and bad-bot traffic can hurt performance.

* **Fast hash-first scanning** checks known files quickly before deeper analysis is needed.
* **Cloud-powered file analysis** handles suspicious files without making your server do all the heavy malware work.
* **On-site database checks** review content, users, options, redirects, and database safety without uploading your database to the cloud.
* **Bad-bot blocking** helps reduce scanner probes, scraping bots, automated scripts, and repeated abusive requests.
* **Cloudflare Sync** can push supported firewall rules to Cloudflare so high-volume blocks can happen before traffic reaches WordPress.
#### WORDPRESS SECURITY SCANNER

SiteFort is not limited to basic file scanning. It runs a layered security review of the WordPress site and organizes findings by severity.

* **Hash-first file analysis** - checks local file hashes first so known clean and known malicious files can be resolved quickly without expensive server-side scanning.
* **Deep malware detection** - sends only unknown or suspicious files for deeper cloud analysis when needed, helping detect backdoors, web shells, malware variants, suspicious PHP, injected code, SEO spam, malicious redirects, unsafe URLs, and exposed sensitive files.
* **File integrity checks** - reviews WordPress core, plugins, themes, uploads, and custom files for unauthorized changes and clean-file restore opportunities.
* **User account security** - detects weak account posture, breached passwords, risky roles, suspicious user data, and administrator accounts that need review.
* **Ghost administrator detection** - flags hidden or unexpected administrator accounts, including suspicious admin users created outside normal site workflows.
* **Content and database safety** - checks WordPress data locally for injected malicious content, suspicious options, unsafe URLs, spam injections, malicious redirect indicators, and database-level threats.
* **Domain and IP reputation** - checks reputation context for the website domain and server IP so blocklist or abuse signals are visible before they affect trust.
* **Sensitive file exposure** - finds exposed backups, logs, config files, debug files, server fragments, dotfiles, and other files attackers commonly search for.
* **Vulnerability scanner** - checks WordPress core, plugins, and themes for known vulnerabilities, affected versions, severity, CVE references where available, and recommended action.
* **Server state checks** - reviews public paths, security headers, file exposure, and server conditions that can make compromise easier.

Cloud-assisted file scanning helps reduce server load while content and database checks run on your website. Your database content never leaves your site.

#### WORDPRESS FIREWALL

SiteFort provides practical firewall controls for production sites without requiring custom WAF rule writing.

* Block or allow by **IP address, CIDR range, country, bot, crawler, or user agent**.
* Use **country blocking** in block-selected or allow-only mode.
* Detect probes for `.env`, `.git`, `wp-config.php` backups, SQL dumps, debug logs, installer files, exposed metadata, and sensitive paths.
* Enable **Cloudflare Sync** to push supported IP, country, and user-agent rules to Cloudflare's edge.
* Escalate repeated active attacks to temporary edge blocks when Cloudflare sync is configured.
* Reduce abusive spikes with rate limiting, 404 probe controls, and community threat intelligence.
* Block scanner bots that try to discover vulnerable plugins, themes, backup files, configuration leaks, and version metadata.

#### EASY BOT FILTER POLICY

Choose **Basic**, **Balanced**, or **Maximum** bot protection without writing manual rules.

* **Basic** blocks known hacking and vulnerability scanning tools.
* **Balanced** blocks hacking tools, data scraping bots, and automated scripts.
* **Maximum** blocks hacking tools, scrapers, automated scripts, and unrecognized bot traffic.

Trusted search engines, social previews, and major crawlers can stay allowed while unwanted automation is filtered.

#### LOGIN SECURITY AND 2FA

Account takeover is one of the fastest ways to lose control of a WordPress site. SiteFort adds layered login protection without requiring multiple plugins.

* Role-based two-factor authentication.
* Authenticator app codes.
* Email verification codes.
* Recovery codes.
* Brute-force lockouts.
* CAPTCHA protection.
* Custom login URL.
* Weak password detection.
* Breached-password detection.
* Strong-password enforcement.
* Password Expiration Policy.
* Safer generic login responses to protect username testing.
* XML-RPC and REST authentication controls.

#### WORDPRESS SECURITY HARDENING

SiteFort helps close the exposure points attackers check first, then verifies whether key protections are actually working.

* **XML-RPC controls** - disable XML-RPC, restrict XML-RPC authentication, or block pingback abuse where appropriate.
* **User enumeration blocking** - reduce username leaks from author archives, REST endpoints, and common discovery paths.
* **Sensitive file protection** - block public access to `.env`, backups, logs, debug files, `.git` metadata, lock files, sample configs, and server fragments.
* **PHP execution protection** - block PHP execution in uploads and direct PHP access inside plugin/theme folders where supported.
* **Directory listing protection** - reduce exposure from browsable upload, plugin, theme, or backup directories.
* **File editor protection** - disable the built-in theme/plugin file editor to reduce damage from compromised admin accounts.
* **REST and application password controls** - restrict risky REST access and application password behavior based on site needs.
* **Version and metadata cleanup** - hide WordPress version output and reduce exposed generator/header signals.
* **Security headers** - analyze and manage CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, and disclosure headers such as `X-Powered-By`, `Server`, and `X-Generator`.
* **Verified hardening** - SiteFort checks whether supported hardening rules are enforced and shows what may require manual hosting or server configuration.

#### VULNERABILITY MANAGEMENT

SiteFort checks installed WordPress core, plugin, and theme versions against vulnerability intelligence and shows affected assets, severity, CVE references where available, and recommended fixes.

SiteFort does not claim to virtually patch vulnerable code. Instead, it helps you identify affected components, prioritize fixes, update where possible, and reduce reconnaissance with scanner-bot blocking while you patch.

**Pro:** automated vulnerability alerts notify teams when a known vulnerability affects an installed plugin, theme, or WordPress core version.

#### ONE-CLICK REPAIR AND RESTORE

**Pro:** SiteFort adds guided repair workflows so you can act on scan findings without manually editing files over FTP or SSH.

* **Repair or delete malicious files** directly from scan results.
* **Restore clean WordPress core, plugin, and theme files** when a trusted clean source is available.
* **Repair supported paid plugin/theme files** when clean-source matching is available.
* **Quarantine suspicious files** and restore them later if needed.

For active compromise, Securewp expert cleanup and managed security services are available when hands-on investigation, root-cause patching, blacklist help, or post-cleanup review is needed.

#### AUDIT LOG AND SITEFORT CONSOLE

SiteFort keeps a security event history so you can see what changed, what was blocked, and what needs review.

Track logins, failed logins, lockouts, user changes, plugin/theme changes, firewall blocks, scan results, hardening changes, vulnerability findings, settings changes, and sensitive actions.

Use SiteFort from WordPress dashboard for site-level protection. Connect to **SiteFort Console** for multi-site status, scan history, vulnerability tracking, uptime monitoring, SSL expiry checks, remote website scanning, alert routing, downloadable reports, team roles, white-label options, and support workflows.

SiteFort Console is available for connected users. Some Console workflows, reporting features, white-label options, managed services, or advanced automations may require a paid plan.

#### HOSTING COMPATIBILITY

SiteFort is built for real WordPress hosting environments, including shared hosting, managed hosting, VPS setups, Apache, Nginx, LiteSpeed, and Cloudflare-proxied sites.

Some hardening rules depend on server permissions and hosting configuration. When a rule cannot be applied automatically, SiteFort shows the status and helps identify what needs manual server configuration.

#### PRO AND MANAGED SECURITY FEATURES

Core protection is available in the plugin. Paid plans are designed for infected sites, larger custom sites, agencies, and teams that need continuous scanning, automated alerts, deeper file analysis, repair workflows, and post-cleanup protection.

Pro features may include:

* Unlimited cloud deep threat analysis.
* Scheduled malware scans.
* Automated vulnerability alerts.
* One-click malware repair and restore.
* Supported clean-file restoration for core, plugin, and theme files.
* Uptime and SSL monitoring.
* Slack, Discord, email, and webhook alert workflows.
* Advanced reports and Console workflows.
* White-label options for agencies.
* Expert cleanup discounts.

Managed security options add hands-on review, monitoring, response workflows, and expert cleanup coverage.

== Installation ==

1. Install SiteFort from the WordPress plugin directory, or upload the plugin ZIP file.
2. For manual installation, upload the unzipped `sitefort` folder to `/wp-content/plugins/`.
3. Activate the plugin from the **Plugins** screen and open **SiteFort** in wp-admin.
4. Complete the setup wizard, or open **SiteFort > Settings > License and Plan**.
5. Activate with your email address or license key. If a Pro purchase uses the same email as an existing free license, the site can upgrade to Pro from the License and Plan screen.
6. Review scanner, firewall, country blocking, bot policy, login security, 2FA, and hardening settings.
7. Connect Cloudflare from **Settings > Integrations** if you want edge-level firewall enforcement.
8. Run your first security scan and review malware, account, database, reputation, vulnerability, and hardening findings.

SiteFort requires outbound HTTPS for license activation, cloud malware analysis, vulnerability intelligence, firewall intelligence, community blocklist updates, reputation checks, clean-file repair, and optional Console sync.

== Frequently Asked Questions ==

= Can I use SiteFort only from my WordPress dashboard? =

Yes. Scanner, malware detection, firewall rules, country blocking, bot policy, login security, 2FA, vulnerability scanning, hardening, audit log, and settings are available from wp-admin. SiteFort Console is optional for centralized management, remote workflows, reports, alert routing, uptime/SSL monitoring, team access, and support workflows.

= What does the SiteFort scanner check? =

SiteFort scans files, file integrity, malware indicators, user account security, weak and breached passwords, hidden administrator accounts, content and database safety, suspicious URLs, injected content, domain/IP reputation, exposed sensitive files, server state, and known vulnerabilities in WordPress core, plugins, and themes.

= Is SiteFort only a file scanner? =

No. SiteFort checks files, accounts, passwords, content, database safety, reputation, exposed sensitive files, vulnerabilities, hardening status, and suspicious server exposure. File scanning is only one part of the security review.

= Does SiteFort include 2FA and CAPTCHA? =

Yes. SiteFort includes login security controls such as role-based 2FA, authenticator app codes, email codes, recovery codes, lockouts, CAPTCHA, custom login URLs, safer login responses, weak password checks, and breached-password detection.

= Does SiteFort include country blocking and Cloudflare support? =

Yes. Country blocking is part of the firewall rules. Country detection can use Cloudflare country data for proxied sites, Cloudflare integration when configured in SiteFort, or a local MaxMind GeoLite2 database when a free MaxMind license is configured.

SiteFort can also sync supported IP, country, and user-agent firewall rules to Cloudflare when the domain is proxied through Cloudflare and a scoped API token is configured.

= What is the easy bot filter policy? =

The bot filter policy lets you choose Basic, Balanced, or Maximum bot protection. It can block hacking tools, vulnerability scanners, scrapers, automated scripts, and unrecognized bots while keeping trusted search engines and social previews allowed.

= Does SiteFort virtually patch vulnerable plugins? =

SiteFort does not claim to virtually patch vulnerable code. It identifies known vulnerable core, plugin, and theme versions, shows severity and recommended fixes, and helps reduce automated reconnaissance with scanner-bot blocking while you update or replace affected components.

= Does SiteFort verify hardening rules? =

Yes. SiteFort does more than toggle settings. It checks whether hardening rules are actually effective where possible and shows when a rule may require manual hosting or server configuration.

= What features require a paid plan? =

Paid plans add unlimited cloud deep threat analysis, scheduled scans, automated vulnerability alerts, one-click malware repair/restore, supported clean-file restoration, uptime/SSL monitoring, Slack/Discord/email/webhook alert workflows, advanced reports, white-label options, expert cleanup discounts, and managed security options.

= How does cloud-assisted malware scanning work? =

SiteFort hashes files locally and checks known signatures first. Known clean and known malicious files can be resolved quickly. Only unknown or suspicious files may be sent for deeper cloud file analysis when needed. Results are cached so unchanged files do not need the same work again.

= Does SiteFort send my site's database content to the cloud? =

No. Database and content checks safety run on your own website. Your database content never leaves your site.

For file scanning, file hashes are sent first. Only files that cannot be verified by hash alone may be uploaded for deeper malware analysis. If `wp-config.php` requires analysis, sensitive configuration values are removed before upload.

= Can SiteFort help after a site is already hacked? =

Yes. SiteFort can scan for malware, suspicious users, injected content, reputation issues, exposed files, and vulnerable components. Supported plans add one-click malware repair, and expert cleanup or managed security services are available when hands-on response is needed.

= How do I activate SiteFort Pro? =

Open **SiteFort > Settings > License and Plan** in your WordPress dashboard. You can activate with the email address used at checkout or a license key. If you already have a free license under the same email, the site can upgrade to Pro from the License and Plan screen.

== Screenshots ==

1. **SiteFort Dashboard** - Site health, security status, firewall activity, vulnerability count and action center.
2. **Security Scanner** - Staged scan progress across files, malware, accounts, database/content safety, reputation, vulnerabilities,  affected files, severity, detection type, file integrity status, and remediation actions.
3. **Firewall Controls** - Easy bot/crawler policy, rate limits, community blocklist, and Cloudflare Sync.
4. **Firewall Rule Builder** - IP rules, country blocking, Bot/crawler firewall rule building
5. **Login Security** - Custom login URL, lockouts, CAPTCHA protection, and password controls.
6. **2FA** - Role enforcement, authenticator app setup, email codes, recovery codes
7. **Server Hardening** - Sensitive file protection, PHP execution controls, XML-RPC and security headers.
8. **WordPress Hardening** - REST API, user enumeration, file editor protection
9. **Vulnerability Scanner** - Affected plugins, themes, WordPress core, CVE references, severity, and fix guidance.
10. **Security Header** - Security headers analyzer, config
11. **Audit Log** - Searchable security events, user activity, firewall actions, scan results, and sensitive changes.
12. **SiteFort Console** - multi-site status, scans, alerts, reports, uptime, SSL, team workflows, and support options.

== External services ==

SiteFort connects to external services for license activation, cloud-assisted malware analysis, vulnerability intelligence, firewall intelligence, optional Console sync, optional CAPTCHA, optional GeoIP, optional IP lookup, and administrator-enabled notifications.

If an optional feature or integration is not configured or used, SiteFort does not contact that service for that feature.

= SiteFort Cloud =

* **Service:** SiteFort Cloud
* **Endpoints:** `securewp.net`, `intel.securewp.net`, `console.securewp.net`
* **Purpose:** license activation, service metadata, cloud malware analysis, vulnerability intelligence, firewall intelligence, reputation checks, community blocklist sync, clean-file repair, and optional Console sync.
* **When/data:** used during activation, scans, vulnerability checks, firewall/blocklist updates, reputation checks, clean-file repair, and optional Console sync. Data may include email address, license key/token, site URL, WordPress/plugin versions, installed plugin/theme names and versions, file hashes, scan results, vulnerability findings, reputation status, firewall metadata, blocked IPs, and security configuration metadata.
* **Malware scanning:** file hashes are sent first. Only files that cannot be verified by hash alone may be uploaded for deeper analysis and are deleted after processing. Database and content checks run on your website. SiteFort does not upload your database or database-stored content to the cloud. If `wp-config.php` requires analysis, sensitive configuration values are removed before upload.
* **Temporary storage URLs:** SiteFort Cloud may return temporary upload/download URLs on `*.amazonaws.com` or `*.r2.cloudflarestorage.com` for scan uploads or clean-file repair downloads.
* **Privacy policy:** https://securewp.net/privacy-policy/
* **Terms:** https://securewp.net/terms-and-conditions/
* **Storage provider policies:** AWS privacy https://aws.amazon.com/privacy/ and terms https://aws.amazon.com/service-terms/; Cloudflare privacy https://www.cloudflare.com/privacypolicy/ and terms https://www.cloudflare.com/website-terms/

= MaxMind GeoLite2 =

* **Service:** MaxMind GeoLite2, https://dev.maxmind.com/geoip/geolite2-free-geolocation-data/
* **Endpoint:** `download.maxmind.com`
* **Purpose:** local GeoIP country lookup when MaxMind is configured.
* **When/data:** used when an administrator downloads or updates the GeoLite2 database. Sends the configured MaxMind account ID and license key to MaxMind. Visitor IPs are resolved locally and are not sent to MaxMind during normal requests.
* **Privacy policy:** https://www.maxmind.com/en/privacy-policy
* **Terms/EULA:** https://www.maxmind.com/en/geolite2/eula

= Have I Been Pwned =

* **Service:** Have I Been Pwned Passwords, https://haveibeenpwned.com/Passwords
* **Endpoint:** `api.pwnedpasswords.com`
* **Purpose:** breached-password detection when enabled.
* **When/data:** used during login or password validation. Sends only the first 5 characters of the SHA-1 password hash. Full passwords and full hashes are never sent.
* **Privacy policy:** https://haveibeenpwned.com/Privacy
* **Terms:** https://haveibeenpwned.com/TermsOfUse

= RIPE NCC and ARIN RDAP =

* **Services:** RIPE NCC RDAP and ARIN RDAP public registry lookup services.
* **Endpoints:** `rdap.db.ripe.net`, `rdap.arin.net`
* **Purpose:** optional IP ownership, network, country, and abuse-contact lookup in firewall tools.
* **When/data:** used only when an administrator requests a WHOIS/RDAP lookup for an IP address. Sends the queried IP address. Site credentials, users, scan results, and plugin settings are not sent. Results are cached locally for one hour.
* **RIPE privacy policy:** https://www.ripe.net/about-us/legal/ripe-ncc-privacy-statement/
* **RIPE terms:** https://docs.db.ripe.net/HTML-Terms-And-Conditions
* **ARIN privacy policy:** https://www.arin.net/about/privacy/
* **ARIN terms:** https://www.arin.net/resources/registry/whois/tou/

= CAPTCHA providers =

SiteFort supports Google reCAPTCHA and Cloudflare Turnstile. Only the selected and configured CAPTCHA provider is contacted.

* **Google reCAPTCHA:** https://www.google.com/recaptcha/about/
* **Endpoints:** `www.google.com`, including `www.google.com/recaptcha/api.js` and `www.google.com/recaptcha/api/siteverify`
* **When/data:** used on protected login forms or challenge verification. Sends CAPTCHA token, site key, and visitor/browser data required by Google.
* **Privacy policy:** https://policies.google.com/privacy
* **Terms:** https://policies.google.com/terms

* **Cloudflare Turnstile:** https://developers.cloudflare.com/turnstile/
* **Endpoints:** `challenges.cloudflare.com`, including `challenges.cloudflare.com/turnstile/v0/api.js` and `challenges.cloudflare.com/turnstile/v0/siteverify`
* **When/data:** used on protected login forms or challenge verification. Sends challenge token, site key, and visitor/browser data required by Cloudflare.
* **Privacy policy:** https://www.cloudflare.com/turnstile-privacy-policy/
* **Terms:** https://www.cloudflare.com/website-terms/

= Cloudflare API =

* **Service:** Cloudflare API, https://api.cloudflare.com/
* **Endpoint:** `api.cloudflare.com`
* **Purpose:** Cloudflare edge blocking and firewall rule sync when enabled.
* **When/data:** used when Cloudflare settings are saved, verified, or synced. Sends Zone ID, API token/credentials, zone details, blocked IPs, country rules, selected user-agent rules, and firewall rule data.
* **Privacy policy:** https://www.cloudflare.com/privacypolicy/
* **Terms:** https://www.cloudflare.com/website-terms/

= Notification webhooks =

SiteFort can send optional security notifications to Slack, Discord, or a custom HTTPS webhook when enabled by an administrator.

* **Slack:** `hooks.slack.com`, https://api.slack.com/messaging/webhooks  
  Privacy policy: https://slack.com/trust/privacy/privacy-policy  
  Terms: https://slack.com/terms-of-service/user

* **Discord:** `discord.com`, `discordapp.com`, https://docs.discord.com/developers/resources/webhook  
  Privacy policy: https://discord.com/privacy  
  Terms: https://discord.com/terms

* **Generic webhooks:** the HTTPS URL entered by the administrator. Privacy policy and terms are determined by the endpoint or provider configured by the administrator.

* **When/data:** only when webhook notifications are enabled and a notification event or test notification is sent. Data may include site name, site URL, event type, severity, scan counts, vulnerability component names, CVE identifiers, firewall digest counts, lockout identifiers, usernames, IP addresses, browser names, action URLs, timestamps, and event details included in the selected notification. Generic webhook payloads may include an `X-SiteFort-Signature` header.

= Local or user-supplied URL checks =

Some requests are loopback checks against the protected site’s own public URL, such as security-header checks, public-file exposure checks, and homepage link collection. These contact the site being protected, not a third-party service.
== Changelog ==

= 1.0.1 =
* Hardened automated scan scheduling with scanner-owned cron intervals, boot-time reconciliation, site-time run alignment, and stale schedule cleanup.
* Fixed audit log, dashboard, and firewall timestamps to use UTC event time consistently.
* Fixed dashboard and report daily totals to respect the WordPress site timezone instead of the server or database timezone.
* Added site-time display and CSV export fields for audit events while keeping UTC as the canonical timestamp.
* Updated file logs to write ISO-8601 UTC timestamps and retain legacy UTC log parsing.

= 1.0.0 =
* Initial release