Kategoriler
WordPress

rest_url_prefix değiştirmek veya gizlemek

WordPress’in varsayılan olarak REST API URL’i “wp-json”dır, bunu değiştirebilir ve gizleyebilirsiniz.

WordPress’de REST API için URL varsayılan olarak “wp-json” ile başlar, ana dizin budur. Projenizde WordPress kullanmanız bildiğiniz gibi WordPress’in dünya üzerinde çok fazla kullanılması hasebiyle sitenizi hackerların hedefi yapar, yapmanız gereken sitenizin WordPress ile yapıldığını olabildiğince gizlemektir.

Bu noktada tüm her şeyi otomatik yapan ekllentiler de mevcuttur, sitenizin WordPress kullandığını hemen hemen tümüyle gizleyebilir(tamamen değil). Fakat eklentiye de gerek kalmadan önce rest_url_prefix’in değişimini sonra da diğer önerilerimi yazmak isterim.

rest_url_prefix hook ile WordPress REST API için URL önekini değiştirmek mümkün, bunun için temanızın function.php dosyasına aşağıdakini eklemeniz yeterli:

add_filter('rest_url_prefix', function(){
	return 'api';
});

Yukarıdaki direktif ile normalde siteniz/wp-json/* olarak çalışan REST API artık siteniz/api/* olarak çalışacaktır. Unutmayın bu kodun gerçekten çalışabilmesi için kodu ekledikten sonra flush_rewrite_rules(); yapmanız gerekir yani isterseniz manuel olarak WordPress admin panelinden, Ayarlar/Kalıcı bağlantı ayarları/ ekranında değişiklikleri kaydet demeniz bu işi yapar. Bu arada bu değişiklik tüm siteyi hem önde hem arka planda etkiler. Kaynak: https://developer.wordpress.org/reference/hooks/rest_url_prefix/ Ek olarak Disable REST API eklentisini kullanmanızı öneririm, birçok seçeneği ile sitenizi API noktasında korumaya alabilir yetkisiz bot veya kişilerden koruyabilirsiniz. Veya API olayından hoşlanmıyor, sizin için gereksiz ise aşağıdaki kod ile komple devre dışı bırakmak sizin için en uygunu:

add_filter('rest_enabled', '_return_false');
add_filter('rest_jsonp_enabled', '_return_false');

Şimdi de diğer WordPress gizleme işlemlerine bir bakalım. İlk olarak yapabileceğiniz şeyler şunları temanızın function.php dosyasına eklemek:

remove_action('xmlrpc_rsd_apis','rest_output_rsd');
remove_action('wp_head','rest_output_link_wp_head',10);
remove_action('template_redirect','rest_output_link_header',11);
add_filter('xmlrpc_enabled','__return_false');
remove_action('wp_head','rsd_link'); 
remove_action('wp_head','wlwmanifest_link'); 
remove_action('wp_head','wp_shortlink_wp_head',10);
remove_action('template_redirect','wp_shortlink_header',11);
remove_action('wp_head','feed_links_extra',3); 
remove_action('wp_head','feed_links',2); 
remove_action('wp_head','wp_generator');
add_filter('the_generator',function(){return '';});
remove_action('wp_head','print_emoji_detection_script',7); 
remove_action('admin_print_scripts','print_emoji_detection_script'); 
remove_filter('embed_head','print_emoji_detection_script');
remove_action('wp_print_styles','print_emoji_styles'); 
remove_action('admin_print_styles','print_emoji_styles'); 
remove_filter('the_content_feed','wp_staticize_emoji');
remove_filter('comment_text_rss','wp_staticize_emoji');	
remove_filter('wp_mail','wp_staticize_emoji_for_email');
add_filter('emoji_svg_url','__return_false');

Tüm bu kodlar bazı WordPress’in eklediği ve gereksiz şeyleri siler.

Bir diğer yapabileceğiniz de “wp-*.php” şeklindeki dosyaların siz harici diğer herkese gizlemektir, buna /wp-admin/ – /wp-includes/ dahil. Bunu yapmak için en basitinden şunu yapabilirsiniz: https://wolkanca.com/htaccess-ile-wordpress-girisini-korumak/

Son olarak eğer imkan varsa(yani yapılınca hayat normal devam edecekse) “/wp-content/uploads/” klasörünün de yolunu değiştirebilirsiniz hatta komple “wp-content” klasörünü de değiştirme imkanınız var https://wordpress.org/support/article/editing-wp-config-php/#moving-wp-content-folder

WordPress güvenliği için aşağıda daha önce hazırlamış olduğum makaleleri de okuyabilir ve deneyebilirsiniz tümü denenmiş ve günceldir:

WordPress güvenlik ve performans [2021]: WordPress güvenlik, performans ve fazlası. Bu ipuçlarının hepsi şahsım tarafından test edilmiş ve onaylanmıştır.
WordPress versiyonunu gizlemek: WordPress en çok hack saldırısı alan sistemlerden biri. WordPress versiyonunu ve tema css, js versiyonlarını gizleyerek önlem alabilirsiniz. Ayrıca site hızınızı arttırabilirsiniz.
Yönetici harici WordPress Admin panelini yasaklamak
WordPress Security – Güvenlik
WordPress login güvenliği: WordPress login sayfanızı hackerlardan korumak için yapılabilecek bazı işlemler.
.htaccess ile WordPress girişini korumak: WordPress admin panelini ve login sayfasını korumak için .htaccess çözümü. Net ve en etkili yöntem.
Cloudflare ile WordPress güvenliği: Cloudflare Firewall ile WordPress sitenizi korumaya alın.
Web sitenizin güvenliğini test edin [Ücretsiz]: Web sitenizin güvenlik açıklarını ve kötü amaçlı yazılımları taramak için ücretsiz 11 online araç
Web sitesi güvenliğini iyileştirme: Web sitenin güvenliği noktasında bazı tavsiyeler ve fikirler.

Twitter’dan takipleşelim, herkese kolay gelsin 🙋🏻‍♂️