SeenSecure Help

Login Security

Comprehensive access protection system with failed attempt control, CAPTCHA, 2FA authentication, restricted accounts, and block management.

🔐 Login Configuration

The Login tab lets you enable or disable the entire access security system and configure the core brute-force protection parameters: failed attempt limit, temporary block duration, conditions for permanent blocks, plus email notifications.

Configuration Parameters

Enable/Disable System

Master switch that enables or disables all login protection. When disabled, no attempt limits or blocks are applied.

Max Failed Attempts

Range: 3-10. Default: 5. Number of failed login attempts allowed before applying a temporary block to the IP.

Temporary Block Duration

Range: 5-1440 minutes. Default: 15. How long the IP remains blocked after exceeding the attempt limit.

Permanent Block

Range: 2-10. Default: 3. Number of consecutive temporary blocks after which the IP receives a permanent block.

Email Notifications

Configure the email address for alerts. Options: notify on blocks and notify on password changes.

Protection Flow

💡 How it works: After N failed attempts from the same IP, a configurable temporary block is applied. If the IP accumulates N temporary blocks, it becomes a permanent block. Email notifications keep the administrator informed of all suspicious activity.

Detailed Behavior

  • Temporary Block: Applied after exceeding the failed attempt limit. The IP is blocked for the configured time (default 15 min). When it expires, the IP regains access automatically.
  • Permanent Block: Activated when an IP accumulates multiple temporary blocks (default 3). Requires manual administrator intervention to unblock.
⚡ Recommended setting: Keep it enabled. Limit: 5 attempts, temporary block: 15 min, permanent block: after 3 temporaries. Enable email notifications for blocks and password changes.

🛡️ CAPTCHA

The CAPTCHA system protects your forms against bots and automated attacks. It offers 7 different verification modes to adapt to each site's needs.

Available CAPTCHA Modes

🎨 Visual

Color-based challenge. No external services required. Works completely offline.

🔢 Math

Simple math operations. Easy for humans, hard for bots. No external dependencies.

😀 Emoji

Visual emoji challenges. Modern and user-friendly. No external JavaScript.

🌈 Color

Color-divided circles. User identifies color patterns. High effectiveness.

🔲 reCAPTCHA v2

Google service with the classic "I'm not a robot". Requires Google Site Key and Secret Key.

👁️ reCAPTCHA v3

Invisible detection. Uses risk score (0.0-1.0). Does not interfere with user experience.

🔀 Hybrid

Combines Visual + reCAPTCHA v3. Maximum protection. reCAPTCHA v3 works silently in the background.

Forms to Protect

You can select which forms have CAPTCHA applied:

  • Login: Protects the login form against brute force.
  • Register: Prevents mass creation of fake accounts.
  • Comments: Prevents automated spam in comments.
  • Password Reset: Blocks password reset attacks.

Google reCAPTCHA Configuration

For modes using Google reCAPTCHA (v2, v3, Hybrid), you need to register your site at Google reCAPTCHA Admin and obtain the following keys:

Site Key

Public key embedded in the site frontend to display the reCAPTCHA widget.

Secret Key

Private key for server-to-Google communication. Keep it secure at all times.

v3 Threshold

Range: 0.0-1.0. Recommended: 0.5. Minimum score to consider a user as human. Lower values are more permissive.

Anti-Abuse Protection

Ban IP After Failures

Number of failed CAPTCHA attempts before blocking the IP. 0 disables this feature.

Log Events

Saves all CAPTCHA events in the history log for later analysis.

⚠️ Important: Modes using Google reCAPTCHA require internet connectivity and valid keys. If Google's service fails, users will not be able to complete protected forms.
💡 Recommendation: Start with Visual or Math mode. If you need more security, migrate to Hybrid mode (Visual + v3).

🔑 Two-Factor Authentication (2FA)

Two-factor authentication adds an extra layer of security by requiring a second verification factor in addition to the password. The system supports TOTP (Time-based One-Time Password) via authenticator apps and email codes as an alternative.

Initial Activation by Admin

Before configuring global 2FA policies, the admin must activate 2FA on their own account. The system generates a QR code with the TOTP secret that must be scanned with an authenticator app (Google Authenticator, Authy, Microsoft Authenticator, etc.).

Global 2FA Policy

Mandatory / Optional

Defines whether 2FA is mandatory for all users or just recommended.

Role-Based Enforcement

Select specific roles that require 2FA (Administrator, Editor, etc.).

Deadline Date

Date after which users without active 2FA will not be able to access the system.

Email Code / Dual

Enable email codes as a TOTP alternative. Dual verification requires both: email + app.

User Management

The admin panel allows searching users, resetting or disabling 2FA for specific accounts, and resending recovery codes. Includes statistics cards: Users with 2FA, Without 2FA, Policy status, Total users, and Email code status.

⚠️ Important: Recovery codes are the only way to regain access if the 2FA device is lost. Store them in a safe but accessible place. Do not store them on the same device that uses 2FA.
💡 Recommendation: Implement 2FA gradually. Start with administrators, then expand to other roles based on risk level. Provide technical support during the transition.

🚫 Anti Session Hijacking

Detects when a logged-in user suddenly switches country mid-session — the typical sign that someone has stolen their credentials or session cookie, for example after intercepting it on public or shared wifi. The system stores the country each user logs in from and compares it on every subsequent request.

😌 Peace of mind if your session has already leaked: If you've ever connected to public or shared wifi (airport, café, hotel) and you're worried someone may have intercepted your WordPress session, this is exactly what this feature watches for. Even if an attacker gets your session cookie, the moment they try to use it from a different country than yours, SeenSecure detects it and, in Block mode, closes that compromised session instantly — without affecting your legitimate session on your own device.

Configuration Parameters

Enable Anti Session Hijacking

Master switch for the feature. Only affects users with a WordPress account (administrator, editor, etc.). Anonymous visitors have no session that could be hijacked, so they are unaffected.

Action on country change

Dropdown with two options: Monitor (only logs and alerts) or Block (closes the compromised session). See details of both modes below.

Trusted countries (ISO codes)

Text field with 2-letter country ISO codes separated by commas, e.g. ES, PT, FR. Connections from these countries will never be flagged as suspicious. See the full ISO code explanation below.

Email the administrator

Independent of the chosen mode. When enabled, every time a suspicious country change is detected, an email is sent to the address configured in WordPress Settings → General, in both Monitor and Block mode.

Action Modes

👁️ Monitor

Logs the event and emails the administrator, but doesn't interrupt any session. Recommended to start with.

🔒 Block

Automatically closes the compromised session as soon as it detects the country change. Only affects that specific session, not the others. The stolen cookie is invalidated on the server instantly: even if the attacker keeps it, it's now useless — dead data, and there's no need to change the user's password.

What are country ISO codes?

They are the standard 2-letter codes (ISO 3166-1 alpha-2) that identify each country online — the same ones used in country domains (.es, .fr...) and address forms. Write them in uppercase, separated by commas if you add more than one. No need to memorize them: just the country you or your team usually connect from.

Country ISO Code Country ISO Code
SpainESUnited StatesUS
FranceFRUnited KingdomGB
GermanyDEMexicoMX
PortugalPTArgentinaAR
ItalyITColombiaCO

Your country not in the table? Search "ISO 3166-1 alpha-2 code" followed by your country's name, or check the full official list at iso.org.

⚠️ If you travel or use a VPN: Your connection country will change and, without a trusted country added, the system will flag it as suspicious (and in Block mode, will close your own session). Add in advance the countries you usually connect from, including your VPN's if you use one daily.

Email Notification

Enabling the "Email the administrator" checkbox means you'll receive an email at your WordPress contact address (Settings → General) every time a suspicious country change is detected on an active session. The email includes the affected user, the original country, the country the change was detected from, and whether the session was closed or only logged, so you can act if you consider it necessary even in Monitor mode.

ℹ️ Requires the WAF in Protection mode: This feature can only close sessions if the Firewall is active in Protection mode. If the WAF is in Monitoring mode or disabled, Anti-Hijack will only log events without being able to close any session.
🛡️ What about the Firewall's IP Whitelist? A whitelisted IP skips WAF blocks (brute force, rate limiting, anti-bot...), but does NOT exempt it from Anti-Session-Hijack: if a stolen cookie is used from a trusted IP located in a different country than the original login, this protection still triggers. That's intentional — otherwise, routing traffic through a whitelisted IP would be enough to use stolen sessions without you noticing.

Available on the PRO plan. Configurable from Login & 2FA → Anti-Hijack in the SeenSecure panel.

👤 Restricted Accounts

The restricted accounts system blocks common or dangerous usernames that attackers often use. When an IP attempts to access with multiple restricted names, it is automatically blocked and added to the permanent blacklist.

Blocked Usernames by Default

admin, administrator, root, test, wordpress, user, webmaster

You can add or remove names from the list. Changes apply immediately.

IP Block Threshold

Configure how many attempts with restricted names from the same IP trigger a permanent blacklist block with reason login_blackname.

Threshold Security Recommended Use
1 Very strict High-risk sites
3 Standard General recommended
5 Permissive High legitimate traffic

Recent Attempts Summary

The panel shows a summary table with the latest access attempts using restricted usernames, including the IP, attempted name, date/time, and whether it resulted in a block.

IPs Blacklisted via login_blackname

List of IP addresses that have been permanently blocked for exceeding the restricted name attempt threshold. You can unblock them manually from the Active Blocks section.

💡 Tip: Start with the standard threshold of 3 attempts. After a week of monitoring, adjust based on the patterns observed on your site.

🛡️ Active Blocks

The Active Blocks section shows all currently active temporary and permanent blocks. It allows managing users and IPs that have been blocked for suspicious activity, offering options to manually unblock.

Blocks Table

The table includes the following columns:

  • User/IP: Blocked username or IP address.
  • Type: Permanent or Temporary, indicated with a color badge.
  • Reason: Reason for the block (failed login, login_blackname, etc.).
  • Attempts: Number of failed attempts recorded before the block.
  • Blocked Since: Block start date and time.
  • Expires: Expiration date (for temporary blocks).

Unblock

Each table row includes an "Unblock" button with confirmation. When clicked, it asks for confirmation before removing the block. This prevents accidental unblocks.

💡 Note: Temporary blocks expire automatically. Only permanent blocks require manual unblocking. Check this table periodically to maintain control over unauthorized access.

📊 Event History

The Event History logs all login security-related activities: successful and failed logins, temporary and permanent blocks, manual unblocks, and password changes. Provides filters and pagination for easy navigation.

Event Types

Login Success

Valid login. Logs user, IP, date/time, and country.

Login Failure

Access attempt with wrong credentials. Logs IP, attempted user, and date.

Temporary Block

IP temporarily blocked for exceeding the failed attempt limit.

Permanent Block

IP permanently blocked after multiple temporary blocks.

Unblock

Admin manually unblocked an IP or user.

Password Change

User changed their password. Logs user, IP, and date/time.

Available Filters

  • Event Type: Dropdown to select a single event type (or "All").
  • Username: Text field to filter by specific user.
  • IP Address: Text field to search events from a specific IP.

Pagination & Display

  • Rows per page: Selector with options 10, 20, 50, 100, 200.
  • Client-side pagination: Page navigation is handled in the browser without reloading.
  • Country flags: Flags are displayed from ISO country codes to identify the origin of events.
💡 Tip: Use combined filters to investigate specific incidents. For example, filter by IP + "Login Failure" to see all failed attempts from a suspicious address.

🔧 Troubleshooting

A legitimate user or IP got blocked

Go to Login Security → Active Lockouts: you'll see the full table with the reason, number of attempts, and whether the block is temporary or permanent. Temporary blocks expire on their own; permanent ones each have their own "Unblock" button (with a confirmation step, to prevent accidental unblocks). No need to wait or touch the general configuration to free up a single person.

My team keeps getting locked out while testing login

Check the Event History first: filter by your IP to confirm how many real failed attempts you're generating. If the block comes from a restricted username (reason login_blackname), you're probably testing with a generic test username (admin, test, etc.) — always use a real username for testing. If it's from normal failed attempts, raise the Lockout Threshold or add your IP to the Firewall whitelist so it doesn't count against the limit.

Frequently Asked Questions

Do temporary blocks need me to do anything? No, they expire automatically. Only permanent ones (typically from a restricted username) need manual unblocking from Active Lockouts.

What's the difference between a lockout from failed attempts and one from a restricted username? The first counts normal failed login attempts; the second specifically triggers when someone tries usernames already blocked by default (like "admin"), and its per-IP attempt threshold is configured separately.

Can I see where login attempts are coming from? Yes, the Event History and the detected-attempts summary show the IP, date/time, and country flag for each attempt's origin.

Can Anti Session Hijacking close the session of someone traveling or using a VPN? If the mode is set to "Block", yes — that's its expected behavior: it closes that specific session as soon as it detects a country change, which is exactly what happens when traveling or switching VPNs. It's not a ban: they just need to log in again normally. If you'd rather just get the alert without closing the session, use "Monitor" mode instead.