Two Factor

توضیحات

افزونه Two‑Factor با الزام کاربران به ارائه یک روش دوم تأیید هویت علاوه بر گذرواژه، یک لایه امنیتی اضافی به ورود وردپرس اضافه می‌کند. این کار حتی در صورت افشای گذرواژه‌ها نیز از دسترسی غیرمجاز جلوگیری می‌کند.

دستورالعمل‌های راه‌اندازی

مهم: هر کاربر باید تنظیمات تأیید هویت دومرحله‌ای خود را به‌صورت جداگانه پیکربندی کند.

برای کاربران

  1. رفتن به نمایه خود: در مدیریت وردپرس به «کاربران نمایه شما» بروید
  2. یافتن گزینه‌های تأیید دومرحله‌ای: به پایین صفحه رفته و بخش «گزینه‌های تأیید دومرحله‌ای» را پیدا کنید
  3. انتخاب روش‌ها: یک یا چند ارائه‌دهنده تأیید هویت را فعال کنید (توجه داشته باشید مدیر سایت ممکن است برخی از آن‌ها را پنهان کرده باشد، بنابراین گزینه‌های دردسترس ممکن است متفاوت باشند):
    • برنامه تأییدکننده (TOTP) — استفاده از برنامه‌هایی مانند Google Authenticator، Authy یا 1Password
    • کدهای ایمیل — دریافت کدهای یکبارمصرف از طریق ایمیل
    • کدهای پشتیبان — ایجاد کدهای یکبارمصرف پشتیبان برای شرایط اضطراری
    • روش آزمایشی (Dummy) — فقط برای اهداف آزمایشی (نیازمند WP_DEBUG)
  4. پیکربندی هر روش: دستورالعمل‌های راه‌اندازی را برای هر ارائه‌دهنده فعال دنبال کنید
  5. تنظیم روش اصلی: انتخاب کنید کدام روش به‌عنوان تأیید هویت پیش‌فرض استفاده شود
  6. ذخیره تغییرات: برای ذخیره تنظیمات روی «به‌روزرسانی نمایه» کلیک نمایید

برای مدیران سایت

  • تنظیمات افزونه: این افزونه صفحه‌ای در «تنظیمات Two‑Factor» فراهم می‌کند تا مشخص کنید کدام ارائه‌دهنده‌ها در کل سایت غیرفعال شوند.
  • مدیریت کاربر: مدیران می‌توانند با ویرایش نمایه کاربران، تأیید هویت دومرحله‌ای را برای آن‌ها پیکربندی کنند
  • پیشنهادهای امنیتی: کاربران را تشویق کنید روش‌های پشتیبان را فعال کنند تا از قفل شدن حساب جلوگیری شود

روش‌های تأیید هویت دردسترس

برنامه تأییدکننده (TOTP) — پیشنهادی

  • امنیت: بالا — گذرواژه‌های یکبارمصرف مبتنی بر زمان
  • راه‌اندازی: کد QR را با برنامه تأییدکننده اسکن کنید
  • سازگاری: با Google Authenticator، Authy، 1Password و سایر برنامه‌های TOTP کار می‌کند
  • بهترین برای: بیشتر کاربران؛ امنیت عالی همراه با کاربری آسان فراهم می‌کند

کدهای پشتیبان — پیشنهادی

  • امنیت: متوسط — کدهای یکبارمصرف
  • راه‌اندازی: ایجاد ۱۰ کد پشتیبان برای دسترسی اضطراری
  • سازگاری: در همه‌جا کار می‌کند و به سخت‌افزار ویژه‌ای نیاز ندارد
  • بهترین برای: دسترسی اضطراری زمانی که روش‌های دیگر دردسترس نیستند

کدهای ایمیل

  • امنیت: متوسط — کدهای یکبارمصرف از طریق ایمیل ارسال می‌شوند
  • راه‌اندازی: خودکار — از آدرس ایمیل وردپرس شما استفاده می‌کند
  • سازگاری: با هر دستگاهی که قابلیت ایمیل داشته باشد کار می‌کند
  • بهترین برای: کاربرانی که تأیید هویت مبتنی بر ایمیل را ترجیح می‌دهند

کلیدهای امنیتی FIDO U2F

  • به دلیل از دست رفتن پشتیبانی مرورگر منسوخ و حذف شده است.

روش آزمایشی (Dummy)

  • امنیت: هیچ‌کدام — همیشه موفق می‌شود
  • راه‌اندازی: فقط زمانی دردسترس است که WP_DEBUG فعال باشد
  • هدف: فقط برای آزمایش و توسعه
  • بهترین برای: توسعه‌دهندگانی که افزونه را آزمایش می‌کنند

نکات مهم

نیازمندی HTTPS

  • همه روش‌ها روی سایت‌های HTTP و HTTPS کار می‌کنند

سازگاری مرورگر

  • روش‌های TOTP و ایمیل در همه دستگاه‌ها و مرورگرها کار می‌کنند

بازیابی حساب

  • همیشه کدهای پشتیبان را فعال کنید تا از قفل شدن حساب خود جلوگیری نمایید
  • اگر دسترسی به همه روش‌های تأیید هویت را از دست دادید با مدیر سایت تماس بگیرید

بهترین شیوه‌های امنیتی

  • در صورت امکان از چندین روش تأیید هویت استفاده کنید
  • کدهای پشتیبان را در مکانی امن نگه‌داری کنید
  • تنظیمات تأیید هویت خود را به‌طور منظم بررسی و به‌روزرسانی کنید

برای اطلاعات بیشتر درباره تأیید هویت دومرحله‌ای در وردپرس، راهنمای امنیت مدیریت پیشرفته وردپرس را ببینید.

برای اطلاعات بیشتر ، به پست مراجعه کنید..

اقدامات & فیلترها

در اینجا لیستی از قلاب‌های عملکرد و فیلتر ارائه شده توسط افزونه آورده شده است:

  • فیلتر two_factor_providers ارائه دهندگان دو مرحله‌ای موجود مانند ایمیل و گذرواژه‌های یکبار مصرف مبتنی بر زمان را لغو می کند. مقادیر آرایه نام کلاس‌های PHP ارائه دهنده های دو مرحله‌ای هستند.
  • صافی two_factor_providers_for_user ارائه‌دهندگان دو مرحله‌ای موجود برای یک کاربر خاص را بازنویسی می‌کند. مقادیر آرایه نمونه‌هایی از کلاس‌های ارائه‌دهنده هستند و شیء کاربر WP_User به عنوان آرگومان دوم در دسترس است.
  • فیلتر two_factor_enabled_providers_for_user فهرست ارائه دهندگان دو عاملی فعال شده برای یک کاربر را لغو می کند. آرگومان اول آرایه ای از نام کلاس های ارائه دهنده فعال به عنوان مقادیر است، آرگومان دوم شناسه کاربر است.
  • two_factor_user_authenticated اقدامی که ورود به سیستم را دریافت می کند WP_User شی به عنوان اولین آرگومان برای تعیین کاربر وارد شده بلافاصله پس از گردش کار احراز هویت.
  • صافی two_factor_user_api_login_enable تأیید هویت برای REST API و XML-RPC را فقط به رمزهای عبور برنامه محدود می‌کند. شناسه کاربر را به عنوان آرگومان دوم ارائه می‌دهد.
  • two_factor_token_ttl فیلتر فاصله زمانی را بر حسب ثانیه که رمز ایمیل پس از تولید در نظر گرفته می‌شود، لغو می‌کند. زمان را بر حسب ثانیه به عنوان اولین آرگومان و شناسه می پذیرد WP_User شی در حال احراز هویت.
  • صافی two_factor_email_token_length تعداد ۸ کاراکتر پیش‌فرض برای توکن‌های ایمیل را بازنویسی می‌کند.
  • صافی two_factor_backup_code_length تعداد ۸ کاراکتر پیش‌فرض برای کدهای پشتیبان را بازنویسی می‌کند. WP_User کاربر مرتبط را به عنوان آرگومان دوم ارائه می‌دهد.
  • صافی two_factor_rest_api_can_edit_user اینکه آیا تنظیمات دو مرحله‌ای کاربر از طریق REST API قابل ویرایش است را بازنویسی می‌کند. آرگومان اول مقدار بولی $can_edit فعلی و آرگومان دوم شناسه کاربر است.
  • اکشن two_factor_before_authentication_prompt که شیء ارائه‌دهنده را دریافت کرده و پیش از نمایش پیام در فرم ورودی تأیید هویت اجرا می‌شود.
  • اکشن two_factor_after_authentication_prompt که شیء ارائه‌دهنده را دریافت کرده و پس از نمایش پیام در فرم ورودی تأیید هویت اجرا می‌شود.
  • اکشن two_factor_after_authentication_input که شیء ارائه‌دهنده را دریافت کرده و پس از نمایش ورودی در فرم تأیید هویت اجرا می‌شود (اگر فرم ورودی نداشته باشد، بلافاصله پس از two_factor_after_authentication_prompt اجرا می‌شود).
  • two_factor_login_backup_links پیوندهای پشتیبان نمایش‌داده‌شده در فرم ورود دومرحله‌ای را فیلتر می‌کند.

هدایت پس از مرحله تأیید دومرحله‌ای

برای هدایت کاربران به یک نشانی مشخص پس از تکمیل مرحله تأیید دومرحله‌ای، از فیلتر داخلی login_redirect در هسته وردپرس استفاده کنید. این فیلتر همانند روند معمول ورود در وردپرس عمل می‌کند:

add_filter( 'login_redirect', function( $redirect_to, $requested_redirect_to, $user ) {
    return home_url( '/dashboard/' );
}, 10, 3 );

عکس‌های صفحه

سوالات متداول

افزونه دو مرحله‌ای از چه نگارش‌های PHP و وردپرس پشتیبانی می‌کند؟

این افزونه از دو نگارش اصلی آخر وردپرس و حداقل نگارش PHP که توسط آن نگارش‌های وردپرس پشتیبانی می‌شوند، پشتیبانی می‌کند.

چگونه می توانم بازخورد ارسال کنم یا در مورد یک اشکال کمک بگیرم؟

بهترین مکان برای گزارش اشکالات، پیشنهادات ویژگی یا هر بازخورد دیگر (غیر امنیتی) در آن است صفحه مسائل Two Factor گیت هاب. قبل از ارسال یک شماره جدید، لطفاً مشکلات موجود را جستجو کنید تا بررسی کنید که آیا شخص دیگری بازخورد مشابهی را گزارش کرده است یا خیر.

کجا می توانم اشکالات امنیتی را گزارش کنم؟

مشارکت کنندگان افزونه و جامعه وردپرس اشکالات امنیتی را جدی می گیرند. ما از تلاش‌های شما برای افشای مسئولانه یافته‌هایتان قدردانی می‌کنیم و تمام تلاش خود را برای قدردانی از مشارکت شما انجام خواهیم داد.

برای گزارش یک مشکل امنیتی، لطفاً از برنامه وردپرس HackerOne دیدن کنید.

اگر دسترسی به همه روش‌های تأیید هویت خود را از دست بدهم چه می‌شود؟

اگر کدهای پشتیبان را فعال کرده باشید، می‌توانید از یکی از آن‌ها برای بازیابی دسترسی استفاده کنید. اگر کد پشتیبان ندارید یا همه آن‌ها را استفاده کرده‌اید، باید با مدیر سایت تماس بگیرید تا حساب شما بازنشانی شود. به همین دلیل مهم است که همیشه کدهای پشتیبان را فعال کرده و آن‌ها را در مکانی امن نگه‌داری کنید.

آیا می‌توانم این افزونه را با WebAuthn استفاده کنم؟

این افزونه پیش‌تر از FIDO U2F پشتیبانی می‌کرد که پیش‌درآمد WebAuthn بود. یک درخواست باز برای افزودن پشتیبانی WebAuthn در اینجا وجود دارد: https://github.com/WordPress/two-factor/pull/427

آیا روش پیشنهادی برای استفاده از passkeyها یا کلیدهای امنیتی سخت‌افزاری با Two‑Factor وجود دارد؟

بله. برای passkeyها و کلیدهای امنیتی سخت‌افزاری می‌توانید افزونه Two‑Factor Provider: WebAuthn را نصب کنید: https://wordpress.org/plugins/two-factor-provider-webauthn/ این افزونه به‌صورت مستقیم با Two‑Factor یکپارچه می‌شود و تأیید هویت مبتنی بر WebAuthn را به‌عنوان یک گزینه دومرحله‌ای اضافی برای کاربران اضافه می‌کند.

نقد و بررسی‌ها

14 ژوئن 2026 1 پاسخ
It's an excellent plugin; I use it on all my sites.
10 ژوئن 2026 1 پاسخ
The basic options expected:1. I must be able to use any authentication app.2. An option to use email as 2nd auth.But this plugin also have backup code.
28 می 2026 4 پاسخ
This plugin requires individual users to manage 2FA. Individual users can remove 2FA from their profile at any time leaving that account vulnerable. An admin would need to check regularly that this hasn't been removed. There is discussion about a custom function to force a user back to the profile page. I tested this. A user can still leave the account with 2FA off, albeit they cannot navigation anywhere but the profile page. However, in this state a bad actor can login with a password only to the unprotected account, then configure 2FA to their own device, this then removes the redirect and therefore undermines the entire process. This is a significant flaw. However, the plugin can protect a single admin account but any sort of user hierarchy is not protected.
7 می 2026 1 پاسخ
Not only did it work well for my use case with a customer who wanted to offer optional 2fa, but when i asked about customizing the code validation page i had a response in minutes. Very impressive. Worked well with a theme my login branded site.
27 آوریل 2026 1 پاسخ
Fonctionne parfaitement, simple et fiable
23 آوریل 2026 1 پاسخ
I am in version 6.6.2 of WordPress and in multisite network version. Is it possible to activate your plugin despite the constraint tested up to 6.9.1, please? I can't activate it at the network level?
خواندن تمامی 210 نقد و بررسی‌

توسعه دهندگان و همکاران

“Two Factor” نرم افزار متن باز است. افراد زیر در این افزونه مشارکت کرده‌اند.

مشارکت کنندگان

“Two Factor” به 42 زبان ترجمه شده است. با تشکر از مترجمین برای همکاری و کمک‌هایشان.

ترجمه “Two Factor” به زبان شما.

علاقه‌ مند به توسعه هستید؟

کد را مرور کنید، مخزن SVN را بررسی کنید، یا از طریق RSS در گزارش توسعه مشترک شوید.

گزارش تغییرات

۰.۱۶.۰ — ۲۰۲۶-۰۳-۲۷

  • تغییرات ناسازگار: حذف پشتیبانی از ارائه‌دهنده قدیمی FIDO U2F توسط #439.
  • ویژگی‌های جدید: افزودن صفحه تنظیمات اختصاصی برای پیکربندی افزونه در wp-admin توسط #764.
  • ویژگی‌های جدید: افزودن فیلتر پیوندهای پشتیبانی تا استفاده‌کنندگان بتوانند پیوندهای راهنما یا بازیابی متناسب با زمینه را سفارشی کنند توسط #615.