WordPress altyapısı kullandığı internet sitelerini WordPress 4.7.4 veya daha üstü sürümlere güncelleyen arkadaşlar, sitelerinde garip şeyler olmaya başladığını fark etti. Güncelleme sonrası sitelerimizdeki target=“_blank” linkleri bir anda rel=“noopener” olarak değişmeye başladı. Kimi hack’lendiğini sandı, kimi de (benim gibi) müşterilerinden linki değiştirdiği için azar işitti.
Tabii devlet sırrı olmadığı için kısa süre sonra işin aslı astarı ortaya çıktı. WordPress, yeni güncellemeyle birlikte rel=“noopener” etiketini bir çeşit güvenlik önlemi olarak getirdi. Bizler genelde okumayı sevmediğimiz ve kaputun altında bölümleriyle ilgilenmediğimiz için bu bilgilerden mahrum kaldık.
Hala birçok WordPress kullanıcısının mevzuya hakim olmadığını düşünürsek, bizce şu rel=“noopener” etiketini enine boyuna incelemenin vakti geldi, geçiyor.
rel=“noopener” Etiketi Nedir?
rel=“noopener” etiketi WordPress tarafında bulunan bir açığın giderilmesi amacıyla geliştirildi. İnternet korsanları WordPress üzerinde bir açık keşfederek, yeni açılan bir sekme yardımıyla aktif sekmeyi kontrol etmenin yolunu buldular. Bu ufak illüzyon oyunu için de window.opener Javascript nesnesini kullandılar. Biraz karmaşık oldu değil mi? Daha basite indirgeyelim.
İnternet korsanları kullandıkları bir JS sayesinde kullanıcıların önünde aktif olarak açık duran sekmeyi, sahte internet sitesiyle değiştirebilecekleri bir yol keşfettiler. Bu açık sayesinde hem kullanıcı bilgilerini cebe attılar hem de giriş bilgilerini kolayca ele geçirebildiler. Bunu nasıl mı yaptılar?
- Buradaki linke tıklayın ve açılan sayfanın sizin internet siteniz olduğunu varsayın.
- Şimdi açılan sayfadan “Click me!!1 (same-origin)” linkine sağ tık ile tıklayın. (Yeni sekmede açmayın veya CTRL + tık yapmayın. Sadece tıklayın.)
- Sekmeyi açtığınızda “Why don’t you go back to the previous tab?” Yani “Neden önceki sekmeye geri dönmüyorsun?” Notu çıkacak. Biz de bir önceki sekmeye geri döneceğiz.
- Sayfada biraz öncekinden farklı bir şey var mı? Mesela ilk tıkladığımızda orada olmayan “0m6 you’ve been h4ck3d!!1one!shift!!!1” yazısı olabilir mi? Hadi bir de adres çubuğuna bakın! İlk geldiğiniz sayfanın bu olduğundan emin misiniz?
Bu açığı kullanan korsanların ekmeğinin kesmek için WordPress, rel=“noopener” etiketini kullandı ve target=“_blank” etiketinde kullanıcıları bekleyen tehlikeyi bertaraf etti.
Google’ın Slack’e Rakip Servisi Hangouts Chat Önümüzdeki Hafta Geliyor
Google, ilk defa geçtiğimiz yıl boy gösteren Hangouts Chats servisini önümüzdeki haftadan itibaren global olarak kullanıma açacağını duyurdu. Google’ın elini Slack ve Microsoft Teams gibi haberleşme platformlarına karşı güçlü tu...
rel=“noopener” Etiketi SEO’yu Üzer mi?
Kısa ve net; hayır.
İlk başta kullanıcılar rel=“noopener” etiketini daha önceden görmedikleri için bu etiketi “nofollow” etiketiyle karıştırdı. Bu nedenle yeni etiketin SEO açısından olumsuz etki yaratabileceğini düşünüldü. Oysa rel=“noopener” etiketi sadece kullanıcıların internet tarayıcısına window.opener Javascript nesnesini durdurması talimatını veren basit bir etiketti. Şu an tüm majör analiz araçları da bu etiketi tamamen yok sayıyor.
Bir not daha; WordPress bu güvenlik güncellemesini ilk getirdiğinde linklere eklenen etiket rel=“noopener” değil, rel="noopener noreferrer” şeklindeydi. Bunun SEO’yu üzebileceği düşünüldükten sonra yeni bir güncellemeyle etiket şimdiki güncel halini aldı ve “noreferrer” etiketi kaldırıldı.
İşin aslına bakacak olursak, rel="noopener noreferrer” etiketi de SEO değerini etkilememişti ancak bazı analiz araçları ve satış ortaklığı yazılımları etkilendiği için tek başına rel=“noopener” etiketini kullanmanın daha iyi olacağı kararına varıldı.
rel=“noopener” Etiketini Nasıl Kaldırırsınız?
Yukarda yer verdiğimiz ve detaylı şekilde anlattığımız güvenlik sorunundan dolayı rel=“noopener” etiketini kaldırmak istemek açıkçası pek akıllıca hareket olmayacaktır. Eğer internet korsanları bir şekilde bu açığı lehinize kullanmayı başarırsa kendiniz ve kullanıcılarınızın bilgilerini tehlikeye atabilirsiniz.
Yine de rel=“noopener” etiketini kaldırmak istiyorsanız, önünüzde dağ olsa duramaz. WordPress’in içerik editörüne dahil edilen yeni bir yama olduğu için HTML kodu olarak düzenleseniz bile WordPress aynı etiketi tekrardan ekleyecektir. Etiketi tamamen durdurmak için;
- WordPress temanızın functions.php dosyasını açın.
- Aşağıdaki kodu kopyalayıp uygun bir yere yapıştırın.
/ Note that this intentionally disables a tinyMCE security feature.
// Use of this code is NOT recommended.add_filter('tiny_mce_before_init','tinymce_allow_unsafe_link_target');
function tinymce_allow_unsafe_link_target( $mceInit ) {
$mceInit['allow_unsafe_link_target']=true;
return $mceInit;
}
Bu kodu eklediğinizde artık linklerinize noopener etiketi eklenmeyecek ancak WordPress 4.7.4’e geçmenizle birlikte tüm linklerinizdeki target=“_blank” etiketleri rel=“noopener” olarak değiştirildiği için eski linkleri manuel olarak düzenlemeniz gerekecek.
Sonuç;
rel=“noopener” etiketi WordPress ekibi tarafından kullanıcıların selameti için sisteme dahil edildi. Bu etiketi devre dışı bırakmamanızı şiddetle öneriyoruz. SEO açısından etliye sütlüye karışmayan bir etiket olduğu için rel=“noopener” etiketi ne sitenizi ne de linklerinizin değerini değiştirecektir.