2026年11月12日
2026年11月12日
WordPress Uygulama Parolaları: Oluşturma, Silme ve REST API
Bu makale, Japonca orijinalin yerelleştirilmiş sürümüdür. Japonca orijinali oku
Uygulama parolası, WordPress 5.6'da eklenen ve REST API'ye ya da dış araçlara verilmek üzere hazırlanan özel bir paroladır. Asıl giriş parolanızı vermek zorunda kalmazsınız; her araç için ayrı oluşturabilir ve yalnızca artık gerekmeyenleri iptal edebilirsiniz. Bu yazıda kullanım koşulları, oluşturma ve silme yöntemleri (yönetim ekranı, WP-CLI, PHP), REST API ile kullanım ve işe yaramadığında kontrol noktaları anlatılır. İçerik, Kasım 2026 itibarıyla WordPress'in geliştirici belgeleri ve kaynak kodu üzerinden doğrulanmıştır.
Uygulama parolasıyla yapılabilenler ve yapılamayanlar
- REST API ve XML-RPC kimlik doğrulamasında kullanılabilir. REST API'de kullanıcı adı ve uygulama parolası Basic kimlik doğrulamasıyla gönderilir.
- Yönetim ekranına girişte (wp-login.php) kullanılamaz. İnsanların giriş yapması için değil, programlar ve araçlar içindir.
- Yetkisi, oluşturduğu kullanıcıyla aynıdır. Bir yönetici oluşturursa, bu parolaya sahip araç yönetici ile aynı işlemleri yapabilir. Yalnızca yazı göndermesini istiyorsanız, yazar veya editör yetkisinde bir kullanıcı oluşturup parolayı o kullanıcıyla oluşturun.
- Tek tek iptal edilebilir. En son kullanıldığı tarih ve IP adresi de kaydedilir.
Kullanım koşulları
Uygulama parolaları varsayılan olarak yalnızca HTTPS kullanan sitelerde veya ortam türü local olan sitelerde kullanılabilir. WordPress'in denetimi şöyledir (wp_is_application_passwords_supported()).
return is_ssl() || 'local' === wp_get_environment_type();
HTTP üzerinde kalan sitelerde profil ekranında bu bölüm görünmez. Çünkü parola şifrelenmemiş bir iletişimle gönderilmiş olurdu.
Yönetim ekranından oluşturma
- "Kullanıcılar → Profil"i (Users → Profile) açın (başka kullanıcılarınki için "Kullanıcılar → Tüm Kullanıcılar"dan ilgili kullanıcıyı düzenleyin).
- Alt tarafta bulunan "Uygulama Parolaları" (Application Passwords) bölümünde, "Yeni Uygulama Parolası Adı" alanına kullanım amacını gösteren bir ad girin (örnek: yazı gönderme betiği, Zapier).
- "Yeni Uygulama Parolası Ekle"ye basın (sürüme göre farklı yazılabilir).
- Görünen 24 karakterlik parolayı not edin. Bu ekrandan ayrıldığınızda bir daha gösterilmez.
Parola, abcd EFGH 1234 ijkl MNOP 6789 gibi her dört karakterde bir boşlukla gösterilir; ancak boşluklar olsa da olmasa da kimlik doğrulaması çalışır.
İptal etmek için aynı bölümdeki listede ilgili satırın iptal düğmesine basın. "Tüm uygulama parolalarını iptal et" ile toplu olarak da iptal edebilirsiniz.
WP-CLI ile oluşturma, kontrol etme ve silme
# Oluştur (yalnızca parolayı göstermek için --porcelain)
wp user application-password create admin "Yazı gönderme betiği" --porcelain
# Listeyi göster (uuid silmede kullanılır)
wp user application-password list admin --fields=uuid,name,created,last_used,last_ip
# Birini sil
wp user application-password delete admin 6633824d-c1d7-4f79-9dd5-4586f734d69e
# O kullanıcının hepsini sil
wp user application-password delete admin --all
admin yerine kullanıcı adı, e-posta adresi veya kullanıcı kimliğinden herhangi biri belirtilebilir. uuid'yi list çıktısında görünen değerle değiştirin.
PHP ile oluşturma, kontrol etme ve silme
Bir eklenti vb. içinden işlem yapacaksanız WP_Application_Passwords sınıfını kullanın.
<?php
$user_id = 2; // Hedef kullanıcı kimliği
// Oluştur. Başarılı olursa [düz metin parola, kaydedilen bilgi] dizisi döner
$result = WP_Application_Passwords::create_new_application_password(
$user_id,
array( 'name' => 'Yazı gönderme betiği' )
);
if ( is_wp_error( $result ) ) {
error_log( $result->get_error_message() );
} else {
list( $password, $item ) = $result;
// $password düz metindir. Yalnızca bu sırada alınabildiği için kullanıcıya güvenli bir yolla iletin
error_log( 'created: ' . $item['uuid'] );
}
// Listeyi al (name, uuid, created, last_used, last_ip vb.)
foreach ( WP_Application_Passwords::get_user_application_passwords( $user_id ) as $item ) {
error_log( $item['name'] . ' ' . $item['uuid'] );
}
// Birini sil
// WP_Application_Passwords::delete_application_password( $user_id, $uuid );
Saklanan yalnızca özet (hash) değeridir; düz metin parola yalnızca oluşturulduğu anda alınabilir.
REST API ile kullanma
curl'de -u kullanıcıadı:uygulamaparolası ile Basic kimlik doğrulaması ekleyin. Önce, kimliği doğrulanmış kullanıcı olarak kendi bilgilerinizin dönüp dönmediğini kontrol edin.
# Kimlik doğrulamanın çalışıp çalışmadığını kontrol et (kendi kullanıcı bilgileriniz dönerse başarılıdır)
curl -u "admin:abcd EFGH 1234 ijkl MNOP 6789" https://example.com/wp-json/wp/v2/users/me
# Taslak bir yazı oluştur
curl -u "admin:abcd EFGH 1234 ijkl MNOP 6789" \
-X POST https://example.com/wp-json/wp/v2/posts \
-H "Content-Type: application/json" \
-d '{"title":"Test yazısı","content":"Gövde metni","status":"draft"}'
PHP'den başka bir WordPress sitesinin REST API'sini çağırıyorsanız, Authorization başlığını kendiniz oluşturun.
<?php
$response = wp_remote_get(
'https://example.com/wp-json/wp/v2/users/me',
array(
'headers' => array(
'Authorization' => 'Basic ' . base64_encode( 'admin:abcd EFGH 1234 ijkl MNOP 6789' ),
),
)
);
if ( ! is_wp_error( $response ) ) {
error_log( wp_remote_retrieve_response_code( $response ) );
}
Örnekteki parola bir örnektir. Gerçek parolayı doğrudan koda yazmayın; ortam değişkeni veya yapılandırma dosyası gibi herkese açık olmayan bir yere koyun.
Kimlik doğrulama çalışmadığında kontrol noktaları
| Belirti | Kontrol edilecek şey |
|---|---|
| Profilde "Uygulama Parolaları" bölümü yok | Sitenin HTTPS olup olmadığı. Bir filtre veya eklentiyle devre dışı bırakılıp bırakılmadığı |
/wp/v2/users/me 401 döndürüyor |
Kullanıcı adının doğru olup olmadığı (görünen ad değil, giriş adı). Parolanın iptal edilip edilmediği |
| Doğru olduğu halde oturum açılmamış sayılıyor | Sunucunun Authorization başlığını PHP'ye iletmiyor olması olasılığı. Apache'de, WordPress'in .htaccess dosyasındaki RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] satırının durup durmadığını kontrol edin |
| Yalnızca bazı URL'lerde başarısız oluyor | Güvenlik eklentilerinin veya WAF'ın REST API'yi kısıtlayıp kısıtlamadığı |
REST API hatalarının geneli "REST API hataları nasıl düzeltilir" yazısında anlatılmaktadır.
Uygulama parolalarını devre dışı bırakma
Kullanmayan sitelerde özelliği baştan devre dışı bırakabilirsiniz. Temanın functions.php dosyasına veya kendi eklentinize yazın.
<?php
// Tüm sitede devre dışı bırak
add_filter( 'wp_is_application_passwords_available', '__return_false' );
Yalnızca belirli kullanıcılara izin verecekseniz, kullanıcı bazlı filtreyi kullanın. Aşağıdaki örnek, yalnızca yönetici yetkisine (manage_options) sahip kullanıcılara izin verir.
<?php
add_filter( 'wp_is_application_passwords_available_for_user', function ( $available, $user ) {
return $available && user_can( $user, 'manage_options' );
}, 10, 2 );
REST API'nin kendisine erişimi kısıtlama yöntemi için "REST API erişimini kısıtlama yöntemi" yazısına bakın.
İşletme notları
- Her araç için ayrı bir parola oluşturun ve adıyla amacı anlaşılsın. Sızdığında yalnızca o aracın parolasını iptal edebilirsiniz.
- Kullanılmayan araçlarınkini hemen iptal edin. Listede en son kullanım tarihi eski olanlar kullanılmıyor olabilir.
- Yönetici parolasını bir dış hizmete vermek gerekip gerekmediğini yeniden düşünün; parolayı yalnızca gereken yetkilere sahip bir kullanıcıyla oluşturun.
WordPress hakkında sorunuz mu var? Bu sitenin yayıncısı Japonya'dadır ve Japonca yanıt verir. İletişim (Japonca)