WordPress'te Olmayanlar Rehberi

Yayınlanan: 2023-02-12

Güvenlik, tüm web sitesi sahipleri için hayati bir konudur. Web sitenizi güvende tutmak için pek çok strateji olsa da, WordPress'te nonce kullanımı göz ardı edilmemelidir. Bu, en yaygın kullanılan güvenlik özelliklerinden biridir ve bir dizi olası sorunu önler.

Nonce, "bir kez kullanılan bir sayıdır" ve formları ve URL'leri kötü niyetli kişilerden ve diğer kötüye kullanımlardan korur. Bu sayılar, hassas eylemleri gerçekleştirme izni almak için kullanıcıların tarayıcılarının göstermesi gereken tanımlama değerleri olarak çalışır.

Bu yazıda, WordPress'te nonces'in nasıl çalıştığına ve nasıl oluşturulacağına bakacağız. Daha sonra bir nonce'ın nasıl doğrulanacağını tartışacağız. Başlayalım!

İçindekiler
1. Nonces WordPress'te Nasıl Çalışır?
2. Bir Yok Yaratmak
3. Yokluğun Doğrulanması
4. WP Motorunda Güvenli Dijital Deneyimler Oluşturun

Nonces WordPress'te Nasıl Çalışır?

Bir nonce'nin birincil amacı, WordPress web sitenizi Siteler Arası İstek Sahtekarlıkları (CSRF'ler) gibi kötü niyetli saldırılardan korumaktır. Bu tür saldırılar, kullanıcıları bir form göndermeleri veya web siteniz için zararlı olan bir bağlantıya tıklamaları için kandırır. WordPress, sitenizi korumak için nonce değerini kontrol eder ve yalnızca bu değer doğruysa eylemin tamamlanmasına izin verir.

Nonces zaten WordPress işlevselliğinin bir parçasıdır ve bunları WordPress tarafından oluşturulan öğelere eklemenize gerek yoktur. Bu, gönderi ekleme ve düzenleme gibi önemli eylemlerin otomatik olarak korunduğu anlamına gelir.

Nonce kullanıldığında varsayılan ömrü 24 saattir. Bu süreden sonra, tanımlandığı eylemi doğrulamak için artık nonce kullanılamaz. Ancak, bu ömür web sitesi yöneticileri tarafından ayarlanabilir.

Nonces'in koruma sağladığı en yaygın CSRF saldırılarından biri, kullanıcı hesaplarının kötü niyetli olarak silinmesidir. Bir nonce uyguladıktan sonra, yönetici ekranınız hesap silme için bir URL oluşturacaktır. WordPress, bu URL'nin sonuna şuna benzer bir şey ekleyecek:

http://etkialaniniz.com/wp-admin/users.php?user=7&action=delete&_wpnonce=c214gd5315

Saldırgan, kullanıcı kimliğini "user=8" gibi başka bir değerle değiştirmeye çalışırsa nonce geçersiz olacaktır. Hesabın silinmesi başarısız olacak ve bir 403 Yasak hata sayfası görüntülenecektir. Bu, kötü niyetli kişilerin sitenizin içeriğine saldırmasını çok daha zorlaştırır.

Olmayanların web sitenizi koruyabileceğini bilmek önemlidir, ancak bunları nasıl uygulayacağınızı da anlamanız gerekir. Varsayılan WordPress özellikleri için zaten etkin olsalar da, bunları temalarınız ve eklentileriniz için manuel olarak uygulamanız gerekebilir.

Bir Nonce Yaratmak

Bir nonce oluşturmak için web sitenizin koduna bir işlev eklemeniz gerekir. Tüm nonce oluşturma kodları, functions.php dosyasına yerleştirilir. Bu dosyayı açmak için, WordPress kontrol panelinizde Görünüm > Tema Düzenleyici'ye gidin. Sağda, dosya düzenleyiciyi açmak için functions.php'ye tıklayın.

Nonces, URL'ler, formlar ve eylemler için ayrı ayrı uygulanır. Bir action nonce oluşturmak için bu dosyaya aşağıdaki kodu ekleyin:

 $nonce= wp_create_nonce('$action');

Kodun "$action" bölümü, nonce'ın doğrulamasını istediğiniz eylemi yansıtacak şekilde ayarlanmalıdır. Bir örnek, gönderileri silmeye çalışan kullanıcıları doğrulamak için nonce ayarlayan "delete-post" eylemini kullanmak olabilir.

Bir URL için nonce oluşturmak üzere aşağıdaki kodu kullanabilirsiniz:

 $nonce= wp_nonce_url();

Parantez içinde, işlevin bağımsız değişkenlerini belirtmeniz gerekir. Bu, çıplak URL ve kullanıcı eylemleri için dizedir. Dize, nonce'nin güvenliğini artırmak için tek bir kullanıcıya özel olmalıdır.

Bir kullanıcı hesabını silmek için nonce oluşturmak istiyorsanız, bu parçacığı kullanabilirsiniz:

 $nonce= wp_nonce_url($bare_url,'delete-user_'.$user->ID);

WordPress, nonce'ın adını varsayılan olarak “_wpnonce” olarak ayarlayacaktır, ancak seçtiğiniz adı yukarıdaki dizenin sonuna ekleyerek bunu güncelleyebilirsiniz.

Bir form için nonce oluşturmak üzere şu kodu ekleyin:

 $nonce= wp_nonce_field();

Parantez içinde, kullanıcı eylemleri için bir dize eklemeniz gerekir. İşlem tamamlandığında, işlev formda iki gizli alan oluşturur ve ilki hash olmayan değeri tutar. İkinci alan geçerli URL'dir. Nihai işlev şöyle görünmelidir:

 $nonce= wp_nonce_field('remove-comment_'.$comment_id);

Bu nonce işlevi ayrıca varsayılan WordPress nonce adına sahip olacaktır. Ancak bu, isterseniz değiştirebileceğiniz bir şeydir.

Bir Nonce'yi Doğrulama

WordPress web sitenize nonce ekledikten sonra doğrulamanız önemlidir. Bu, nonce'nin düzgün çalışmasını ve web sitenizi güvende tutmasını sağlar.

URL'ler ve formlar için nonce'ı doğrulamak için farklı yöntemler kullanılır. Bir URL'yi doğrulamak için, functions.php dosyasına aşağıdaki kodu ekleyin:

 wp_verify_nonce($nonce, $action);

Bu işlevde, "$nonce" ifadesini, "delete-user" gibi doğrulamak istediğiniz nonce adına ayarlayın. Ardından, "$action" dizesini nonce'nin oluşturulduğu belirli zamana değiştirin. İşlev çalıştığında, nonce geçersiz ise "yanlış" döndürür.

Öte yandan, nonce geçerliyse, işlev 1 veya 2 döndürür. Bu size nonce'nin yaşını söyler. 1'e eşit bir değer, nonce'nin son 12 saat içinde oluşturulduğu anlamına gelir. 2'ye eşit bir değer, nonce'nin 12 saatten uzun, ancak 24 saatten kısa bir süre önce oluşturulduğu anlamına gelir.

Bir forma nonce eklediyseniz, bunu doğrulamak için aşağıdaki kod gerekir:

 check_admin_referer($action, $nonce);

Nonce değeri geçerliyse, form amaçlandığı gibi çalışacaktır. Ancak nonce geçersizse, kullanıcının tarayıcısı onları bir 403 Forbidden hata sayfasına yönlendirecektir.

WP Engine'de Güvenli Dijital Deneyimler Oluşturun

Güvenlik, istikrarlı bir web sitesi için hayati önem taşır ve hiçbir şey, ekstra bir koruma katmanı ekler. Bunları uygulamak için tek yapmanız gereken functions.php dosyanıza bazı kodlar eklemek. Kullanılan kod, oluşturmak istediğiniz nonce türüne ve korumak istediğiniz eyleme göre değişir.

Nonces oluşturmak ve uygulamak site güvenliğini artırırken, dikkate alınması gereken başka güvenlik protokolleri de vardır. Neyse ki, WP Engine'in güvenli WordPress barındırma platformu, kullanıcılar ve geliştiriciler için en iyi güvenlik kaynaklarından bazılarını sunar. Bu, WordPress sitenizi mükemmelleştirmeye odaklanmanız için size daha fazla zaman bırakır!