Hizmetler Hosting & Sunucu Araçlar Blog Ara Kurumsal EnglishEN
Teklif Alın

Bu Sekiz Değer Ne İşe Yarar?

Bir kullanıcı WordPress yönetim paneline giriş yaptığında, tarayıcıya oturumunu tanımlayan çerezler (cookie) yazılır. Bu çerezlerin bir saldırgan tarafından taklit edilmesini (forgery) engellemek için WordPress, ürettiği her çerezi ve birçok form/AJAX isteğini kriptografik olarak imzalar. İmzalama sırasında kullanılan rastgele karakter dizilerine güvenlik anahtarları ya da salt denir. WordPress toplam 8 benzersiz sabit kullanır: AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY ve bunların _SALT karşılıkları olan AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT, NONCE_SALT. Bu sabitler wp-config.php dosyasında tanımlanır ve site kurulduğu andan itibaren arka planda sürekli çalışır; çoğu site sahibi bunların varlığından haberdar bile değildir.

Bilgi
Rastgele ve tahmin edilemez olmaları kritiktir: bir çerez sahte olarak üretilmeye çalışıldığında, doğru salt değeri bilinmeden imza tutturulamaz.

Dört Anahtar Çifti, Dört Farklı Görev

Sekiz sabit aslında dört farklı amaca hizmet eden dört çiftten oluşur. Her çift bir _KEY ve bir _SALT değerinden oluşur; ikisi birlikte ilgili çerezin imzasını üretir.

  • AUTH_KEY / AUTH_SALT: Kullanıcının genel oturum açma (authentication) çerezlerini imzalar; wp-admin'e giriş yapıldığında kullanılan temel kimlik doğrulama katmanıdır.
  • SECURE_AUTH_KEY / SECURE_AUTH_SALT: Bağlantının SSL/HTTPS üzerinden yapıldığı durumlarda kullanılan kimlik doğrulama çerezleri için ayrı bir imza katmanı sağlar.
  • LOGGED_IN_KEY / LOGGED_IN_SALT: Kullanıcının "giriş yapmış" durumunu, yönetim panelinin dışında sitenin ön yüzünde (frontend) de tanımak için kullanılan çerezi imzalar; örneğin yorum formlarında giriş yapan kullanıcıyı tanımak buna dayanır.
  • NONCE_KEY / NONCE_SALT: Formlarda ve AJAX isteklerinde kullanılan tek kullanımlık "nonce" (number used once) token'larının üretiminde kullanılır; bu token'lar CSRF benzeri sahte istek saldırılarına karşı koruma sağlar.

Dört farklı amaç için ayrı anahtar setlerinin kullanılması bir savunma katmanlaması mantığıdır: bir çerez türüne ait imzalama mekanizmasının farklı bağlamlarda (panel, ön yüz, form, SSL) birbirinden bağımsız çalışması, tek bir noktadaki zayıflığın tüm sistemi etkilemesini zorlaştırır.

wp-config.php İçinde Nasıl Görünür

Bu sekiz sabit, kurulumun kök dizinindeki wp-config.php dosyasında define() satırlarıyla tanımlanır. Aşağıdaki örnek, satırların yapısını gösterir; buradaki değerler yalnızca yer tutucudur ve gerçek bir anahtar üretimini temsil etmez:

define( 'AUTH_KEY',         'buraya-benzersiz-rastgele-deger' );
define( 'SECURE_AUTH_KEY',  'buraya-benzersiz-rastgele-deger' );
define( 'LOGGED_IN_KEY',    'buraya-benzersiz-rastgele-deger' );
define( 'NONCE_KEY',        'buraya-benzersiz-rastgele-deger' );
define( 'AUTH_SALT',        'buraya-benzersiz-rastgele-deger' );
define( 'SECURE_AUTH_SALT', 'buraya-benzersiz-rastgele-deger' );
define( 'LOGGED_IN_SALT',   'buraya-benzersiz-rastgele-deger' );
define( 'NONCE_SALT',       'buraya-benzersiz-rastgele-deger' );
Uyarı
Sekiz değerin her birinin birbirinden farklı ve tahmin edilemez olması gerekir. Aynı string'i sekiz satıra kopyalayıp yapıştırmak, farklı çerez türleri arasındaki izolasyonu ortadan kaldırır ve korumanın etkisini ciddi ölçüde azaltır.

Anahtarları Ne Zaman ve Neden Yenilemelisiniz

Anahtarları değiştirmek, ilk bakışta küçük bir bakım işlemi gibi görünse de doğrudan bir sonucu vardır: mevcut tüm oturumları ve "beni hatırla" çerezlerini anında geçersiz kılar. Bu değişiklikten sonra dahil olduğunuz da dahil tüm kullanıcılar tekrar giriş yapmak zorunda kalır. Bu davranış aslında anahtarların işlevinin bir kanıtıdır: eski imzalarla üretilmiş hiçbir çerez artık geçerli kabul edilmez.

  • Bir güvenlik ihlali şüphesi olduğunda: yetkisiz bir admin hesabı, bilinmeyen dosya değişikliği ya da şüpheli giriş denemeleri fark edildiğinde anahtarları yenilemek, iyi bilinen bir ilk müdahale (incident response) adımıdır.
  • Bir siteyi başka bir sunucuya taşırken ya da eski bir yedekten geri yüklerken, güncel bir anahtar seti kullanmak ek bir hijyen adımıdır.
  • Periyodik bakım kapsamında, örneğin yılda bir kez, anahtarları tazelemek genel güvenlik pratiğine uygundur.
  • Bir yönetici hesabının parolasının ele geçirilmiş olabileceğinden şüphelenildiğinde, parola değişikliğine ek olarak anahtarların yenilenmesi mevcut tüm oturumları kapatır.
İpucu
Anahtarları planlı bir bakım penceresi dışında yenileyecekseniz, tüm kullanıcıların tekrar giriş yapmak zorunda kalacağını önceden bilmekte fayda var; özellikle çok yazarlı sitelerde bu bir sürpriz olmamalı.

Örnek Senaryo: Şüpheli Bir Girişten Sonra

Diyelim ki site trafiğinizde alışılmadık bir yönetici oturumu ya da tanımadığınız bir admin hesabı fark ettiniz. Böyle bir durumda anahtarları yenilemek, olayı büyütmeden önce atılabilecek hızlı ve etkili bir adımdır. Süreç kabaca şöyle işler:

  • Öncelikle şüpheli admin hesabının parolası değiştirilir ya da hesap tamamen kaldırılır.
  • Ardından sekiz güvenlik anahtarı için yeni, rastgele değerler üretilir.
  • Bu yeni değerler wp-config.php dosyasındaki mevcut define() satırlarının yerine yapıştırılır ve dosya kaydedilir.
  • Kaydetme işleminin ardından, saldırganın eski çerezlerle üretmiş olabileceği tüm sahte oturumlar dahil, sitedeki tüm aktif oturumlar geçersiz hale gelir.
  • Sizin de dahil olduğunuz herkes, panele ve varsa üyelik alanına tekrar giriş yapmak zorunda kalır.

Bu adım tek başına bir güvenlik ihlalini tamamen çözmez; zararlı dosya taraması, eklenti/tema güncellemeleri ve parola sıfırlamaları gibi diğer önlemlerle birlikte uygulanmalıdır. Ancak mevcut oturumları anında geçersiz kılması nedeniyle, olay müdahalesinin ilk ve düşük maliyetli adımlarından biridir.

Sık Yapılan Hatalar

  • WordPress'in resmi kurulum iskeletinde (wp-config-sample.php) yer alan "put your unique phrase here" gibi varsayılan yer tutucu metni değiştirmeden bırakmak.
  • Sekiz sabitin tamamına aynı string'i kopyalayıp yapıştırmak; bu, farklı çerez türleri arasındaki izolasyonu ortadan kaldırır.
  • Şüpheli bir aktivite fark edildiğinde parolayı değiştirip anahtarları yenilemeyi atlamak; eski anahtarlarla imzalanmış bir oturum çerezi hâlâ geçerli kalabilir.
  • Anahtarları elle, tahmin edilebilir bir desenle (site adı, tarih, basit kelimeler) yazmak; bu değerlerin gücü tamamen rastgeleliklerinden gelir.
  • wp-config.php dosyasını düzenlerken önceden yedek almadan değişiklik yapmak; hatalı bir satır siteyi tamamen erişilemez hale getirebilir.

Anahtarları elle uydurmak yerine bir üretici kullanmak hem daha hızlı hem daha güvenlidir. Bu araç crypto.getRandomValues() kullanarak WordPress.org'un resmi anahtar üretici API'si (api.wordpress.org/secret-key/1.1/salt/) ile aynı karakter setinden (harf, rakam ve özel karakterler) seçim yapar. Üretim tamamen tarayıcınızda gerçekleşir; hiçbir değer bir sunucuya gönderilmez. Çıkan sekiz satırı kopyalayıp wp-config.php dosyanızdaki mevcut tanımların yerine yapıştırmanız yeterlidir.

WhatsApp