跳至主要內容
WordPress.org

Taiwan 正體中文

  • 佈景主題目錄
  • 外掛目錄
  • 最新消息
  • 技術支援
  • 關於我們
  • 團隊
  • 取得 WordPress
取得 WordPress
WordPress.org

Plugin Directory

Tiny 2FA + Brute Force Protection

  • 提交外掛
  • 我的最愛
  • 登入
  • 提交外掛
  • 我的最愛
  • 登入

Tiny 2FA + Brute Force Protection

由 Web Guy 開發
下載
  • 詳細資料
  • 使用者評論
  • 安裝方式
  • 開發資訊
技術支援

外掛說明

💬 Ask Question | 📧 Email Me

This is probably the 2FA plugin you’re looking for.

Secure, private, and lightweight.

Integrates into WordPress like a native feature.

Proactive vs Reactive Security

Prevents attacks instead of reacting to them. The best breach is the one that never happens.

How it Works

  1. Install and activate the plugin
  2. Go to Users > Profile > Two-Factor Authentication (near the bottom)
  3. Check the box next to “Enable 2FA” and click “Update Profile”
  4. 2FA and Backup Codes are now enabled
  5. Scan the QR code or manually enter the secret key into your auth app of choice (and be sure to rename the generic site name “2FA” to something more useful)
  6. Once successful login with a 2FA code from your app has been confirmed, you should disable Backup Codes
  7. Brute force protection is enabled by default and can be managed site-wide by admins in profile settings

Backup Codes have been rethought from the usual method you might be used to. Read more about that in the FAQ below.

Need Support?

Ask for help here.

安裝方式

Automatic

  • From your WordPress Admin, navigate to: Plugins > Add New
  • Search for: “Tiny 2FA”
  • Install it
  • Activate it

Manual

  • Download
  • Unzip
  • Upload to /plugins/ folder
  • Activate

常見問題集

I locked myself out of my admin!

Try not to panic; you’re not permanently locked out and nothing has been lost. You’ll simply need to disable the Tiny 2FA plugin to regain access.

The simplest way to do that is to access your /wp-content/plugins folder via FTP and rename the /tiny-2fa folder to anything else. Once you’re back in your admin, you can restore the folder name and proceed to adjust your 2FA settings.

I’m positive I entered my username, password, and 2FA code correctly, but I still can’t log in!

There are a few quirks to check for that could disrupt the general 2FA process, which aren’t exclusive to Tiny 2FA:

  1. The code you’re trying to enter may have expired. Even if you get a fresh code, you may need to reload the login page again first before trying the new code.
  2. You may need to clear the browser cache and try again.
  3. If you’re using Cloudflare, you’ll need to either restore visitor IPs or disable brute force protection.
  4. If you’re using a caching plugin, make sure it doesn’t cache login pages or otherwise exclude your login page in its settings.
  5. In your authenticator app, you may need to find and use a setting called something like “Sync Clock with Google.”

What 2FA methods are available?

Only TOTP at this time. This is the most common 2FA method, the one you’re probably most familiar with already. It’s more secure than 2FA via SMS or email, but not as secure as a hardware key (overkill for most people), which is probably the only other option I’d consider adding.

What apps are compatible?

There are many mobile, desktop, and browser apps that support TOTP, including: Google Authenticator, Microsoft Authenticator, Proton Authenticator, Ente Auth, Authy, Bitwarden, LastPass, and 1Password.

How do I generate a new secret key?

Simply regenerate (↻) in your profile settings to get a new key.

Can I store the site encryption key in wp-config.php?

Yes. For extra security, you can define your encryption key in wp-config.php:

define( 'TINY_2FA_ENCRYPTION_KEY', 'your-64-character-hex-key-here' );

You can find your current key in /wp-content/tiny-2fa-backup.php. This ensures your key survives database issues if somehow it’s lost.

How’s the security?

Other than storing secret keys in an encrypted format (apparently most sites just save them in plaintext), it’s a pretty standard implementation (but having any 2FA in place is infinitely more secure than no 2FA at all).

How’s the privacy?

As it turns out, generating QR codes is not a trivial matter. I explored generating them locally, but it added a lot of bloat to the plugin. So, I’ve opted to use an external service instead.

I’m using QuickChart (rather than Google, a popular choice) to generate QR codes, and for extra privacy, proxying the requests through Cloudflare.

QuickChart will only ever know the secret key, but not the site name, username, or IP address it belongs to. Cloudflare will know the server IP the request is coming from, but still not the name of the website or user.

How do Backup Codes work differently with your plugin?

The way I’ve envisioned Backup Codes is simple: immediately upon enabling 2FA, Backup Codes will be on by default. This means that you’ll receive codes by email until you’re certain you’ve set up an authentication app correctly, and then you should disable them.

Why do Backup Codes work differently with your plugin?

I don’t like the current implementation of the common Backup Codes feature that comes with most 2FAs. I think it creates a burden for the user to back them up, which if they’re capable of doing, they’re also capable of backing up their secret key in the first place without adding an unnecessary chore and new vulnerability while they’re at it.

I think I’ve been able to improve upon the concept of Backup Codes, at least in the WordPress environment where most users are going to be the admin of their own website anyway. The entire point of Backup Codes in the first place is to offer a second chance to avoid being locked out of your account in case you lost your secret key. But for most WordPress websites, and probably many websites in general these days, the added vulnerability doesn’t seem to match the intended usefulness.

I’m open to being wrong about this. If you feel my thinking is flawed or you have any other suggestion for improving the security of Tiny 2FA, please let me know.

使用者評論

這個外掛目前沒有任何使用者評論。

參與者及開發者

以下人員參與了開源軟體〈Tiny 2FA + Brute Force Protection〉的開發相關工作。

參與者
  • Web Guy

將〈Tiny 2FA + Brute Force Protection〉外掛本地化為台灣繁體中文版

對開發相關資訊感興趣?

任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄。

變更記錄

0.3

  • Ability to set custom encryption key
  • Switched to Sodium encryption (XChaCha20-Poly1305)
  • Improved safety checks

0.2

  • Added brute force protection

0.1

  • New

中繼資料

  • 版本 0.3
  • 最後更新 1 個月前
  • 啟用安裝數 10+
  • WordPress 版本需求 5.0 或更新版本
  • 已測試相容的 WordPress 版本 6.8.3
  • PHP 版本需求 7.4 或更新版本
  • 語言
    English (US)
  • 標籤
    2FAloginMFAsecurity
  • 進階檢視

評分

這個項目尚無任何評論記錄。

新增使用者評論

查看全部使用者評論

參與者

  • Web Guy

技術支援

使用者可在技術支援論壇提出意見反應或使用問題。

檢視技術支援論壇

贊助

想要支援這個外掛的發展嗎?

贊助這個外掛

  • 關於我們
  • 最新消息
  • 主機代管
  • 隱私權
  • 展示網站
  • 佈景主題目錄
  • 外掛目錄
  • 區塊版面配置目錄
  • Learn
  • 技術支援
  • 開發者資源
  • WordPress.tv ↗
  • 共同參與
  • 活動
  • 贊助基金會 ↗
  • Five for the Future
  • WordPress.com ↗
  • Matt ↗
  • bbPress ↗
  • BuddyPress ↗
WordPress.org
WordPress.org

Taiwan 正體中文

  • 查看我們的 X (之前的 Twitter) 帳號
  • 造訪我們的 Bluesky 帳號
  • 造訪我們的 Mastodon 帳號
  • 造訪我們的 Threads 帳號
  • 造訪我們的 Facebook 粉絲專頁
  • Visit our Instagram account
  • Visit our LinkedIn account
  • 造訪我們的 TikTok 帳號
  • Visit our YouTube channel
  • 造訪我們的 Tumblr 帳號
程式碼,如詩
The WordPress® trademark is the intellectual property of the WordPress Foundation.