WHMCS Yazılımında Güvenlik Açıklarının Önüne Geçmek
Son günlerde birçok firmanın WHMCS taraflı bir hack durumuna maruz kalması sonucunda kafalarda soru işaretleri oluşmaya başladı. Bu tür açıklara karşı nasıl önlemler alınabileceğinden bahsedeceğim.
Güncelleme / Patch
WHMCS'nin kendi açıklamasında (Security Update 2023-06-20 | WHMCS Blog) belirtildiği üzere 8.5, 8.6, 8.7 ve altı sürümleri kapsayan bir açık mevcut. Bu açığın önlemi adına sistemlerinizi güncel tutmanız, güncelleme yapmayı tercih etmiyorsanız yine aynı adreste WHMCS'nin bildirdiği güvenlik yamalarını uygulamanız önerilir. Buna ek olarak PHP sürümünüzün 8.1 ve üzeri olduğundan emin olun, ancak bazı WHMCS sürümlerinde bu PHP sürümü desteklenmiyor, bu durumda da desteklenen en üst sürümü kullanın.
WHMCS Sağlık Kontrolü
WHMCS sağlık kontrolü sayfasında bulunan uyarıları çözümlemeniz önerilir, özellikle configuration.php dosyası hakkında bir uyarı ile karşılaşıyorsanız mutlaka düzenleme sağlamanız gerekir.
Admin Panelini Dışarıya Kapamak
Basit bir önlem olsa da, admin paneli urlsini cloudflare vb. yazılımlar ile URL'ye IP adresi limiti uygulayarak tamamen dışarı kapatmak mümkün. Bunun için örnek bir kural şu şekilde:

(35.35.35.35 yazan yere erişmesi gereken ip adresini eklemelisiniz, eğer birden fazla IP erişecekse aynı expressionu bir kez daha ekleyerek 2. bir IP'ye de izin verebilirsiniz.)
Sunucuyu Güvene Almak
Web sunucunuzun bulunduğu cihazın; internete açılmaması gereken 22, 3306 gibi portlarını erişmesi gereken IP adresleri harici kapalı konuma getirmeniz, Plesk veya cPanel gibi yazılımlar kullanıyorsanız WAF ve ModSecurity gibi özelliklerini aktif konuma getirmelisiniz.
Siteyi Güvene Almak
Sitenizde Cloudflare'ın Pro paketi, Netinternet WAF (Heimwall) gibi ters proxy sistemlerinin WAF özelliğini kullanırsanız XSS, SQL injection vb. birçok güvenlik açığını engelleyebilirsiniz.
Kullanılmayan PHP Fonksiyonlarını Kapatma
PHP yapıladırma dosyanıza:
disable_functions = shell_exec,symlink,restore_ini,hopenbasedir,f_open,system,dl,passthru,cat exec,popen,proc_close,proc_get_status,proc_nice,proc_open,show_source,posix_mkfifo,mysql_list_dbs,get_current_user,getmyuid,pconnect,link,symlink,pcntl_exec,leak,apache_child_terminate,posix_kill,posix_setpgid,posix_setsid,posix_setuid,proc_terminate,syslog,fpassthru,socket_select,socket_create,socket_create_listen,socket_create_pair,socket_listen,socket_accept,socket_bind,foreach,socket_strerror,pcntl_fork,pcntl_signal,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,openlog,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,virtual,mail,phpmail
değerini ekleyerek, paylaşımlı webhostinglerde sitenizde oluşabilecek potansiyel güvenlik açıklarının önüne geçebilirsiniz. ⚠️ Bu fonksiyonlardan birini kullanıyor olmanız durumunda hata ile karşılaşabilirsiniz, dikkatli kullanın.
Şuan için yapılabilecek öneriler bu yöndedir, WHMCS tarafından bir açıklama veya güncelleme yapılması durumunda güncellenecektir. Burada bahsedilen önerilerin sorunu kesin olarak ortadan kaldıracağı kesin değildir, ayrıca bazı öneriler yalnızca WHMCS'yi değil genel web güvenliğini de kapsamaktadır.