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:
Twitter’dan takipleşelim, herkese kolay gelsin 🙋🏻♂️