Two Factor

Açıklama

Two-Factor eklentisi, kullanıcıların parolalarına ek olarak ikinci bir kimlik doğrulama yöntemi kullanmalarını zorunlu kılarak WordPress oturum açma işleminize ek bir güvenlik katmanı ekler. Bu, parolalar ele geçirilse bile yetkisiz erişime karşı korunmaya yardımcı olur.

Kurulum Talimatları

Önemli: Her kullanıcı iki faktörlü kimlik doğrulama ayarlarını ayrı ayrı yapılandırmalıdır.

Bireysel Kullanıcılar İçin

  1. Profilinize gidin: WordPress yönetim panelinde “Kullanıcılar” “Profiliniz” bölümüne gidin.
  2. İki Faktörlü Kimlik Doğrulama Seçeneklerini Bulun: “İki Faktörlü Kimlik Doğrulama Seçenekleri” bölümüne ilerleyin.
  3. Yöntemlerinizi seçin: Bir veya daha fazla kimlik doğrulama sağlayıcısını etkinleştirin (site yöneticisinin bir veya daha fazla sağlayıcıyı gizlemiş olabileceğini ve bu nedenle kullanılabilir seçeneklerin değişebileceğini unutmayın):
    • Kimlik Doğrulama Uygulaması (TOTP) – Google Authenticator, Authy, 1Password veya Synology Secure SignIn gibi uygulamaları kullanın.
    • E-posta Kodları – Tek kullanımlık kodları e-posta yoluyla alın.
    • Yedek Kodlar – Acil durumlar için tek kullanımlık yedek kodlar oluşturun.
    • Sahte Yöntem – Yalnızca test amacıyla kullanılır (WP_DEBUG gerektirir).
  4. Her yöntemi yapılandırın: Etkinleştirilen her sağlayıcı için kurulum talimatlarını izleyin.
  5. Birincil yöntemi ayarla: Varsayılan kimlik doğrulama yönteminiz olarak hangisinin kullanılacağını seçin.
  6. Değişiklikleri kaydedin: Ayarlarınızı kaydetmek için “Profili Güncelle” düğmesine tıklayın.

Site Yöneticileri İçin

  • Eklenti ayarları: Eklenti, hangi sağlayıcıların site genelinde devre dışı bırakılacağını yapılandırmak için “Ayarlar Two-Factor” altında bir ayarlar sayfası sunar.
  • Kullanıcı yönetimi: Yöneticiler, diğer kullanıcıların profillerini düzenleyerek 2FA ayarlarını yapılandırabilir.
  • Güvenlik önerileri: Hesaplarına erişimlerini kaybetmelerini önlemek için kullanıcıları yedek yöntemleri etkinleştirmeye teşvik edin.

Kullanılabilir Kimlik Doğrulama Yöntemleri

Kimlik Doğrulama Uygulaması (TOTP) – Önerilen

  • Güvenlik: Yüksek – Zamana dayalı tek kullanımlık parolalar
  • Kurulum: QR kodunu kimlik doğrulama uygulamasıyla tarayın.
  • Uyumluluk: Google Authenticator, Authy, 1Password, Synology Secure SignIn ve diğer TOTP uygulamalarıyla çalışır.
  • En uygun: İyi bir kullanım kolaylığıyla yüksek düzeyde güvenlik isteyen çoğu kullanıcı için

Yedek Kodlar – Önerilen

  • Güvenlik: Orta – Tek kullanımlık kodlar
  • Kurulum: Acil erişim için 10 yedek kod oluşturun.
  • Uyumluluk: Her yerde çalışır, özel bir donanım gerektirmez.
  • En uygun: Diğer yöntemlerin kullanılamadığı durumlarda acil erişim için

E-posta Kodları

  • Güvenlik: Orta – E-posta yoluyla gönderilen tek kullanımlık kodlar
  • Kurulum: Otomatik – WordPress e-posta adresinizi kullanır.
  • Uyumluluk: E-posta kullanabilen tüm cihazlarla çalışır.
  • En uygun: E-posta tabanlı kimlik doğrulamayı tercih eden kullanıcılar

FIDO U2F Güvenlik Anahtarları

  • Tarayıcı desteğinin sona ermesi nedeniyle kullanımdan kaldırıldı ve eklentiden çıkarıldı.

Test Yöntemi

  • Güvenlik: Yok – Her zaman başarılı olur.
  • Kurulum: Yalnızca WP_DEBUG etkinleştirildiğinde kullanılabilir.
  • Amaç: Yalnızca test ve geliştirme için
  • En uygun: Eklentiyi test eden geliştiriciler

Önemli Notlar

HTTPS Gereksinimi

  • Tüm yöntemler hem HTTP hem de HTTPS kullanan sitelerde çalışır.

Tarayıcı Uyumluluğu

  • TOTP ve e-posta yöntemleri tüm cihazlarda ve tarayıcılarda çalışır.

Hesap Kurtarma

  • Hesabınıza erişiminizin engellenmesini önlemek için yedek kodları her zaman etkinleştirin.
  • Tüm kimlik doğrulama yöntemlerine erişiminizi kaybederseniz site yöneticinizle iletişime geçin.

En İyi Güvenlik Uygulamaları

  • Mümkün olduğunda birden fazla kimlik doğrulama yöntemi kullanın.
  • Yedek kodları güvenli bir yerde saklayın.
  • Kimlik doğrulama ayarlarınızı düzenli olarak gözden geçirin ve güncelleyin.

WordPress’te iki faktörlü kimlik doğrulama hakkında daha fazla bilgi için WordPress Gelişmiş Yönetim Güvenlik Kılavuzu‘na bakın.

Daha fazla geçmiş bilgisi için bu yazıya bakın.

Eylemler & Filtreler

Eklenti tarafından sağlanan eylem ve filtre kancalarının listesi aşağıdadır:

  • two_factor_providers filtresi, e-posta ve zamana dayalı tek kullanımlık parolalar gibi kullanılabilir iki faktörlü kimlik doğrulama sağlayıcılarını geçersiz kılar. Dizi değerleri, iki faktörlü kimlik doğrulama sağlayıcılarının PHP sınıf adlarıdır.
  • two_factor_providers_for_user filtresi, belirli bir kullanıcı için kullanılabilir iki faktörlü kimlik doğrulama sağlayıcılarını geçersiz kılar. Dizi değerleri sağlayıcı sınıflarının örnekleridir ve WP_User kullanıcı nesnesi ikinci bağımsız değişken olarak kullanılabilir.
  • two_factor_enabled_providers_for_user filtresi, bir kullanıcı için etkinleştirilen iki faktörlü kimlik doğrulama sağlayıcılarının listesini geçersiz kılar. İlk bağımsız değişken, etkinleştirilmiş sağlayıcı sınıf adlarını değer olarak içeren bir dizidir; ikinci bağımsız değişken ise kullanıcı kimliğidir (ID).
  • two_factor_user_authenticated, kimlik doğrulama işleminin hemen ardından oturum açan kullanıcıyı belirlemek için ilk bağımsız değişken olarak oturum açmış WP_User nesnesini alan bir eylemdir.
  • two_factor_user_api_login_enable filtresi, REST API ve XML-RPC için kimlik doğrulamayı yalnızca uygulama parolalarıyla sınırlar. İkinci bağımsız değişken olarak kullanıcı kimliğini (ID) sağlar.
  • two_factor_email_token_ttl filtresi, bir e-posta belirtecinin oluşturulduktan sonra geçerli kabul edileceği süreyi saniye cinsinden geçersiz kılar. İlk bağımsız değişken olarak saniye cinsinden süreyi, ikinci bağımsız değişken olarak ise kimliği doğrulanan WP_User nesnesinin kimliğini (ID) alır.
  • two_factor_email_token_length filtresi, e-posta belirteçleri için varsayılan 8 karakterlik uzunluğu geçersiz kılar.
  • two_factor_backup_code_length filtresi, yedek kodlar için varsayılan 8 karakterlik uzunluğu geçersiz kılar. İkinci bağımsız değişken olarak ilgili kullanıcının WP_User nesnesini sağlar.
  • two_factor_rest_api_can_edit_user filtresi, bir kullanıcının Two-Factor ayarlarının REST API üzerinden düzenlenip düzenlenemeyeceğini belirleyen ayarı geçersiz kılar. İlk bağımsız değişken mevcut $can_edit mantıksal (boolean) değeri, ikinci bağımsız değişken ise kullanıcı kimliğidir (ID).
  • two_factor_before_authentication_prompt, sağlayıcı nesnesini alan ve kimlik doğrulama giriş formunda gösterilen istemden önce çalışan bir eylemdir.
  • two_factor_after_authentication_prompt, sağlayıcı nesnesini alan ve kimlik doğrulama giriş formunda gösterilen istemden sonra çalışan bir eylemdir.
  • two_factor_after_authentication_input, sağlayıcı nesnesini alan ve kimlik doğrulama giriş formunda gösterilen giriş alanından sonra çalışan bir eylemdir (formda giriş alanı yoksa eylem, two_factor_after_authentication_prompt eyleminden hemen sonra çalışır).
  • two_factor_login_backup_links, iki faktörlü kimlik doğrulama giriş formunda görüntülenen yedek bağlantıları filtreler.

İki Faktörlü Kimlik Doğrulama Sonrası Yönlendirme

İki faktörlü kimlik doğrulama işlemini tamamladıktan sonra kullanıcıları belirli bir URL’ye yönlendirmek için WordPress çekirdeğinde yerleşik olan login_redirect filtresini kullanın. Bu filtre, standart WordPress oturum açma işlemindekiyle aynı şekilde çalışır:

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

Ekran Görüntüleri

SSS

Two-Factor eklentisi hangi PHP ve WordPress sürümlerini destekliyor?

Bu eklenti, WordPress’in son iki ana sürümünü ve bu WordPress sürümlerinin desteklediği en düşük PHP sürümünü destekler.

Nasıl geri bildirim gönderebilir veya bir hata konusunda yardım alabilirim?

Hataları, özellik önerilerini veya güvenlikle ilgili olmayan diğer geri bildirimleri bildirmek için en uygun yer Two Factor GitHub sorunları sayfasıdır. Yeni bir sorun bildirmeden önce aynı geri bildirimin başka biri tarafından bildirilip bildirilmediğini kontrol etmek için lütfen mevcut sorunlarda arama yapın.

Güvenlik açıklarını nerede bildirebilirim?

Eklentiye katkıda bulunanlar ve WordPress topluluğu güvenlik açıklarını ciddiye alır. Bulgularınızı sorumlu bir şekilde bildirmenizi takdir ediyor ve katkılarınızı belirtmek için elimizden gelen çabayı göstereceğiz.

Bir güvenlik sorununu bildirmek için lütfen WordPress HackerOne programını ziyaret edin.

Tüm kimlik doğrulama yöntemlerime erişimimi kaybedersem ne olur?

Yedek kodları etkinleştirdiyseniz hesabınıza yeniden erişmek için bunlardan birini kullanabilirsiniz. Yedek kodlarınız yoksa veya hepsini kullandıysanız hesabınızı sıfırlamak için site yöneticinizle iletişime geçmeniz gerekir. Bu nedenle yedek kodları her zaman etkinleştirmeniz ve güvenli bir yerde saklamanız önemlidir.

Bu eklentiyi WebAuthn ile kullanabilir miyim?

Eklenti daha önce WebAuthn’ın öncülü olan FIDO U2F’yi destekliyordu. WebAuthn desteğinin eklenmesi için açık bir konu burada bulunmaktadır: https://github.com/WordPress/two-factor/pull/427

Two-Factor ile geçiş anahtarlarını veya donanım güvenlik anahtarlarını kullanmanın önerilen bir yolu var mı?

Evet. Geçiş anahtarları (passkey) ve donanım güvenlik anahtarları için Two-Factor Provider: WebAuthn eklentisini yükleyebilirsiniz: https://wordpress.org/plugins/two-factor-provider-webauthn/ . Bu eklenti, Two-Factor ile doğrudan bütünleşir ve kullanıcılara ek bir iki faktörlü kimlik doğrulama seçeneği olarak WebAuthn tabanlı kimlik doğrulama olanağı sunar.

İncelemeler

14 Haziran 2026 1 yanıt
It’s an excellent plugin; I use it on all my sites.
10 Haziran 2026 1 yanıt
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 Mayıs 2026 4 yanıt
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 Mayıs 2026 1 yanıt
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 Nisan 2026 1 yanıt
Fonctionne parfaitement, simple et fiable
23 Nisan 2026 1 yanıt
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 incelemeyi oku

Katkıda Bulunanlar ve Geliştiriciler

“Two Factor” 41 dile çevrildi. Katkıda bulundukları için çevirmenlere teşekkürler.

“Two Factor” eklentisini dilinize çevirin.

Geliştirmeyle ilgilenir misiniz?

Kodu görüntüleyin, SVN deposuna göz atın ya da RSS ile geliştirme günlüğüne abone olun.

Değişiklik Kaydı

0.16.0 – 2026-03-27

  • Breaking Changes: Remove legacy FIDO U2F provider support by #439.
  • New Features: Add a dedicated settings page for plugin configuration in wp-admin by #764.
  • New Features: Add a support links filter so consumers can customize contextual recovery/help links by #615.
  • New Features: Refresh backup codes UI styling and behavior by #804.
  • Bug Fixes: Delete stored TOTP secrets when the TOTP provider is disabled by #802.
  • Bug Fixes: Harden provider handling so login/settings checks do not fail open when expected providers disappear by #586.
  • Bug Fixes: Ensure only configured providers are saved and enabled in user settings by #798.
  • Bug Fixes: Improve settings-page accessibility and fix profile settings link behavior by #828 and #830.
  • Bug Fixes: Resolve PHPCS violations in provider files by #851.
  • Development Updates: Move login styles and provider scripts from inline output to enqueued/external assets by #807 and #814.
  • Development Updates: Improve inline docs and static-analysis compatibility (WPCS/phpstan) by #810, #815, and #817.
  • Geliştirme Güncellemeleri: #825, #841 ve #842 ile birim testlerinin güvenilirliğini artırın ve CI kod kapsamı raporlamasını entegre edin.
  • Geliştirme Güncellemeleri: #835, #837, #843 ve #849 ile benioku belgelerini güncelleyin ve CI iş akışı altyapısını modernleştirin.
  • Bağımlılık Güncellemeleri: #794 ile qs paketini 6.14.1 sürümünden 6.14.2 sürümüne yükseltin.
  • Bağımlılık Güncellemeleri: #816 ile basic-ftp paketini 5.0.5 sürümünden 5.2.0 sürümüne yükseltin.
  • Bağımlılık Güncellemeleri: #799 ile otomatik kod denetimi/biçimlendirme güncellemelerini ve bunlarla ilişkili Composer paket güncellemelerini uygulayın.

0.15.0 – 2026-02-13

  • Breaking Changes: Trigger two-factor flow only when expected by @kasparsd in #660 and #793.
  • New Features: Include user IP address and contextual warning in two-factor code emails by @todeveni in #728
  • New Features: Optimize email text for TOTP by @masteradhoc in #789
  • New Features: Add “Settings” action link to plugin list for quick access to profile by @hardikRathi in #740
  • New Features: Additional form hooks by @eric-michel in #742
  • New Features: Full RFC6238 Compatibility by @ericmann in #656
  • New Features: Consistent user experience for TOTP setup by @kasparsd in #792
  • Documentation: @since docs by @masteradhoc in #781
  • Documentation: Update user and admin docs, prepare for more screenshots by @jeffpaul in #701
  • Documentation: Add changelog & credits, update release notes by @jeffpaul in #696
  • Documentation: Clear readme.txt by @masteradhoc in #785
  • Documentation: Add date and time information above TOTP setup instructions by @masteradhoc in #772
  • Documentation: Clarify TOTP setup instructions by @masteradhoc in #763
  • Documentation: Update RELEASING.md by @jeffpaul in #787
  • Development Updates: Pause deploys to SVN trunk for merges to master by @kasparsd in #738
  • Development Updates: Fix CI checks for PHP compatability by @kasparsd in #739
  • Development Updates: Fix Playground refs by @kasparsd in #744
  • Development Updates: Persist existing translations when introducing new helper text in emails by @kasparsd in #745
  • Development Updates: Fix missing_direct_file_access_protection by @masteradhoc in #760
  • Development Updates: Fix mismatched_plugin_name by @masteradhoc in #754
  • Development Updates: Introduce Props Bot workflow by @jeffpaul in #749
  • Development Updates: Plugin Check: Fix Missing $domain parameter by @masteradhoc in #753
  • Development Updates: Tests: Update to supported WP version 6.8 by @masteradhoc in #770
  • Development Updates: Fix PHP 8.5 deprecated message by @masteradhoc in #762
  • Development Updates: Exclude 7.2 and 7.3 checks against trunk by @masteradhoc in #769
  • Development Updates: Fix Plugin Check errors: MissingTranslatorsComment & MissingSingularPlaceholder by @masteradhoc in #758
  • Development Updates: Add PHP 8.5 tests for latest and trunk version of WP by @masteradhoc in #771
  • Development Updates: Add phpcs:ignore for falsepositives by @masteradhoc in #777
  • Development Updates: Fix(totp): otpauth link in QR code URL by @sjinks in #784
  • Development Updates: Update deploy.yml by @masteradhoc in #773
  • Development Updates: Update required WordPress Version by @masteradhoc in #765
  • Development Updates: Fix: ensure execution stops after redirects by @sjinks in #786
  • Development Updates: Fix WordPress.Security.EscapeOutput.OutputNotEscaped errors by @masteradhoc in #776
  • Dependency Updates: Bump qs and express by @dependabot[bot] in #746
  • Dependency Updates: Bump lodash from 4.17.21 to 4.17.23 by @dependabot[bot] in #750
  • Dependency Updates: Bump lodash-es from 4.17.21 to 4.17.23 by @dependabot[bot] in #748
  • Dependency Updates: Bump phpunit/phpunit from 8.5.44 to 8.5.52 by @dependabot[bot] in #755
  • Dependency Updates: Bump symfony/process from 5.4.47 to 5.4.51 by @dependabot[bot] in #756
  • Dependency Updates: Bump qs and body-parser by @dependabot[bot] in #782
  • Dependency Updates: Bump webpack from 5.101.3 to 5.105.0 by @dependabot[bot] in #780

0.14.2 – 2025-12-11

  • New Features: Add filter for rest_api_can_edit_user_and_update_two_factor_options by @gutobenn in #689
  • Development Updates: Remove Coveralls tooling and add inline coverage report by @kasparsd in #717
  • Development Updates: Update blueprint path to pull from main branch instead of a deleted f… by @georgestephanis in #719
  • Development Updates: Fix blueprint and wporg asset deploys by @kasparsd in #734
  • Development Updates: Upload release only on tag releases by @kasparsd in #735
  • Development Updates: Bump playwright and @playwright/test by @dependabot[bot] in #721
  • Development Updates: Bump tar-fs from 3.1.0 to 3.1.1 by @dependabot[bot] in #720
  • Development Updates: Bump node-forge from 1.3.1 to 1.3.2 by @dependabot[bot] in #724
  • Development Updates: Bump js-yaml by @dependabot[bot] in #725
  • Development Updates: Mark as tested with the latest WP core version by @kasparsd in #730

0.14.1 – 2025-09-05

  • Don’t URI encode the TOTP url for display. by @dd32 in #711
  • Removed the duplicate Security.md by @slvignesh05 in #712
  • Fixed linting issues by @sudar in #707
  • Update development dependencies and fix failing QR unit test by @kasparsd in #714
  • Trigger checkbox js change event by @gedeminas in #688

0.14.0 – 2025-07-03

  • Features: Enable Application Passwords for REST API and XML-RPC authentication (by default) by @joostdekeijzer in #697 and #698. Previously this required two_factor_user_api_login_enable filter to be set to true which is now the default during application password auth. XML-RPC login is still disabled for regular user passwords.
  • Features: Label recommended methods to simplify the configuration by @kasparsd in #676 and #675
  • Documentation: Add WP.org plugin demo by @kasparsd in #667
  • Documentation: Document supported versions of WP core and PHP by @jeffpaul in #695
  • Documentation: Document the release process by @jeffpaul in #684
  • Tooling: Remove duplicate WP.org screenshots and graphics from SVN trunk by @jeffpaul in #683

0.13.0 – 2025-04-02

  • Add two_factor_providers_for_user filter to limit two-factor providers available to each user by @kasparsd in #669
  • Update automated testing to cover PHP 8.4 and default to PHP 8.3 by @BrookeDot in #665

View the complete changelog details here.