=== Bearmor Security ===
Contributors: andeirz
Tags: security, malware scanner, firewall, login security, two-factor authentication
Requires at least: 5.8
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Lightweight, powerful WordPress security for small and medium businesses. Malware scanning, login protection, 2FA, hardening & more.

== Description ==
# Bearmor Security

Professional WordPress security plugin with comprehensive malware protection, file integrity monitoring, and login security. Almost entirely free, with optional PRO features for advanced needs.

## Core Features (100% Free)

**Malware Scanner**
- Deep file scanning for backdoors, web shells, and malicious code
- Pattern matching and heuristic detection
- One-click quarantine for threats
- Whitelist false positives
- Scans WordPress root and wp-content PHP files, the active theme, mu-plugins, and uploads (plugin directories are vendor-maintained and excluded)

**File Integrity Monitoring**
- Tracks changes to WordPress core files, the active theme, and mu-plugins
- Detailed change logs showing what, when, and where
- Instant quarantine for suspicious modifications
- Mark legitimate changes as safe

**Login Security**
- Brute force protection with automatic IP blocking
- Complete login activity log
- Geographic tracking for login attempts
- Two-factor authentication (2FA) via email

**Security Hardening**
- One-click hardening for common vulnerabilities
- Disable XML-RPC, file editing, and directory browsing
- Hide WordPress version and login errors
- Enforce strong passwords
- Simple toggle controls

**Firewall**
- Web application firewall blocks SQL injection, XSS, and command injection
- Rate limiting to prevent DDoS attacks
- Country blocking with geo-IP detection
- Honeypot protection for forms

**Activity Logging**
- Track all administrative actions
- Filter by user, action type, or date
- Essential audit trail for multi-user sites

**Security Dashboard**
- Clear overview of security status
- Letter-grade security score (A-F)
- Threat alerts and recommendations
- Clean, focused interface

## Optional PRO Features

The free version provides complete security protection. PRO adds optional enhancements:

- **Vulnerability Scanner** - Automated CVE checks for plugins and themes
- **AI Security Analysis** - Plain-English explanations of security issues
- **Uptime Monitoring** - 24/7 external monitoring with instant alerts

[Learn more about PRO features](https://bearmor.eu/bearmor-security-plugin/)

## Why Bearmor?

**Most Powerful Free Tier**
Unlike competitors, Bearmor includes malware scanning, file monitoring, firewall, quarantine, and 2FA in the free version. Features other plugins lock behind paid plans are free here.

**Performance Focused**
Efficient scanning with minimal server impact. No bloat, no unnecessary features.

**Professional Interface**
Clean dashboard that shows what matters. No confusion, no clutter.

**Privacy Respected**
Free users only send basic registration data (URL + email). Security scan data stays on your server unless you enable PRO AI analysis.

## Quick Start

1. Install and activate Bearmor Security
2. Run your first malware scan from the dashboard
3. Enable recommended hardening options
4. Set up 2FA for your account

No configuration required. Works immediately.

## External Services

**Free Users:**
- Bearmor API (bearmor.eu) - License verification and registration
- WordPress.org API - Core file integrity checks
- IP-API.com - Geographic data for login tracking

**PRO Users (additional):**
- Bearmor API - Uptime monitoring and vulnerability data
- OpenAI API - AI security analysis

All connections use HTTPS encryption. No security scan data leaves your server in the free version.

[Privacy Policy](https://bearmor.eu/privacy)
[Terms of Service](https://bearmor.eu/terms)

## Support

- [Documentation](https://bearmor.eu/docs)
- [Support Forum](https://wordpress.org/support/plugin/bearmor-security)
- Email: security@bearmor.eu (PRO users receive priority support)

## Privacy & Data

**Free Users:**
- Site URL (installation identifier)
- Admin email (security notifications)
- Plugin version (update checks)

**PRO Users (additional):**
- Security scan results (AI analysis only)
- Uptime monitoring data (ping responses)

**We Never:**
- Sell data to third parties
- Track website visitors
- Store passwords or sensitive user data
- Share data without explicit consent

Data is encrypted in transit, stored on EU servers, and automatically deleted after 90 days. Request data deletion anytime at security@bearmor.eu.

[Full Privacy Policy](https://bearmor.eu/privacy)

== Changelog ==

= 1.0.4 =
* Release: Same changes as 1.0.3; version bump to restore WordPress.org auto-updates.

= 1.0.3 =
* Fix: Vulnerability matcher reported false positives for unfixed and eq feed records.
* Fix: Matcher now correctly combines min/max bounds and handles the eq operator.
* Fix: Example: WooCommerce 10.x no longer flagged for a 7.1.0-only issue.
* Fix: Existing false-positive vulnerability rows and cached API responses are purged on upgrade and re-evaluated silently with the corrected matcher.
* Fix: Dashboard uptime auto-sync never fired due to an incorrect admin page slug check.
* Change: Vulnerability scanning, AI Security Analysis, and 24/7 Uptime Monitoring are now correctly limited to Pro plans on the backend (not just hidden in the UI).
* Security: Call-home requests (license verify, uptime, AI analysis, subscription) now authenticate with the per-site key.
* Maintenance: Site registration now initialises on activation; removed dead code and leftover .bak files.

= 1.0.2 =
* Fix: Fatal error in cron-based file integrity check — `Bearmor_Checksum::get_checksum()` was renamed to `get_stored()` and the call site was not updated, causing daily scans to crash and trigger a WP recovery email
* Fix: Hash algorithm mismatch in `check_root_directory()` — baseline stored SHA-256 but integrity comparison used SHA-1, causing all root-level files to be incorrectly flagged as changed

= 1.0.1 =
* Initial public release
