WordPress web sitenizi bilgisayar korsanlarından korumak en önemli önceliktir. Web sitelerimizde güvenliği artırmanın etkili bir yolu, belirli klasörlerde PHP yürütmeyi devre dışı bırakmaktır.
Bilgisayar korsanları bazen PHP koduyla yazılmış zararlı dosyalar yüklemeye çalışırlar. Bu dosyalar çalışabilirse, web sitenizin güvenliğini tehlikeye atabilir.
PHP kodunun belirli dizinlerde çalışmasına izin vermeyerek, bu zararlı dosyaların sunucunuza yüklenmiş olsalar bile hasara neden olmalarını engelleyebilirsiniz.
Bu makale size WordPress’te PHP çalıştırmayı nasıl devre dışı bırakacağınızı gösterecektir. Bu güvenlik önlemini etkinleştirmek ve sitenizi olası saldırılardan korumak için .htaccess dosyasını nasıl kullanacağınızı açıklayacağız.
Neden Belirli WordPress Dizinlerinde PHP Çalıştırmayı Devre Dışı Bırakmalısınız?
WordPress varsayılan olarak belirli dizinleri yazılabilir hale getirir, böylece siz ve web sitenizdeki diğer yetkili kullanıcılar web sitenize kolayca tema, eklenti, resim ve video yükleyebilirsiniz.
Ancak bu özellik, WordPress web sitenize arka kapı erişim dosyaları veya kötü amaçlı yazılım yüklemek için kullanabilecek bilgisayar korsanları gibi yanlış ellere geçerse kötüye kullanılabilir.
Bu kötü amaçlı dosyalar genellikle temel WordPress dosyaları olarak gizlenir. Çoğunlukla PHP ile yazılırlar ve web sitenizin her yönüne tam erişim elde etmek için arka planda çalışabilirler.
Kulağa korkutucu geliyor, değil mi?
Endişelenmeyin. Bunun için kolay bir çözüm var. İhtiyacınız olmayan belirli dizinlerde PHP çalıştırmayı devre dışı bırakmanız yeterlidir. Bunu yaptığınızda, bu dizinlerin içinde hiçbir PHP dosyası çalışmayacaktır.
Şimdi .htaccess dosyasını kullanarak PHP yürütmesini devre dışı bırakarak WordPress güvenliğini nasıl artıracağımıza bir göz atalım.
.htaccess Dosyasını Kullanarak Belirli WordPress Dizinlerinde PHP Yürütmeyi Devre Dışı Bırakma
Çoğu WordPress sitesinin kök klasöründe bir .htaccess dosyası bulunur.
Bu güçlü yapılandırma dosyası, yönetici alanını parola ile korumak, dizin taramayı devre dışı bırakmak, SEO dostu bir URL yapısı oluşturmak ve daha fazlası için kullanılır.
Varsayılan olarak .htaccess dosyası WordPress web sitenizin kök klasöründe bulunur, ancak iç WordPress dizinlerinizin içinde ek .htaccess dosyaları oluşturabilir ve kullanabilirsiniz.
Web sitenizi arka kapı erişim dosyalarından korumak için bir .htaccess dosyası oluşturmanız ve bunu sitenizin /wp-includes
ve /wp-content/uploads
dizinlerine yüklemeniz gerekir.
Windows’ta Notepad veya Mac’te TextEdit gibi bir metin düzenleyici kullanarak bilgisayarınızda yeni bir dosya oluşturun. Dosyayı .htaccess olarak kaydedin ve aşağıdaki kod parçacığını içine yapıştırın:
<Files *.php>
deny from all
</Files>
Şimdi dosyayı bilgisayarınıza kaydedin.
Ardından, bu dosyayı WordPress barındırma sunucunuzdaki /wp-includes
ve /wp-content/uploads
klasörlerine yüklemeniz gerekir.
Bir FTP istemcisi veya hosting hesabınızın cPanel panosundaki Dosya Yöneticisi uygulamasını kullanarak yükleyebilirsiniz.
Yukarıdaki kodu içeren .htaccess dosyası eklendiğinde, bu dizinlerde herhangi bir PHP betiğinin çalışmasını durduracaktır.
Sucuri Kullanarak WordPress’te Arka Kapıları Kontrol Etme
Bu .htaccess hilesini kullanmak WordPress güvenliğinizi güçlendirmenize yardımcı olur, ancak zaten saldırıya uğramış bir WordPress sitesini düzeltmez.
Arka kapılar akıllıca gizlenir ve zaten göz önünde gizlenebilir.
Web sitenizdeki olası arka kapıları kontrol etmek istiyorsanız, web sitenizde Sucuri ‘yi etkinleştirmeniz gerekir.
Sucuri piyasadaki en iyi WordPress güvenlik eklentisidir. Web sitenizi olası tehditlere, şüpheli kodlara, kötü amaçlı yazılımlara ve güvenlik açıklarına karşı tarar.
Ayrıca, siteniz ile şüpheli trafik arasına bir güvenlik duvarı ekleyerek çoğu bilgisayar korsanlığı girişiminin web sitenize ulaşmasını bile etkili bir şekilde engeller.
En önemlisi, eğer WordPress siteniz saldırıya uğrarsa, bunu sizin için temizleyecektir. Daha fazla bilgi edinmek için Sucuri incelememizi okuyabilirsiniz çünkü biz yıllardır onların hizmetlerini kullanıyoruz.
Saldırıya uğramış bir WordPress sitesindeki arka kapıları bulma ve düzeltme hakkındaki kılavuzumuzda daha fazla bilgi edinebilirsiniz.
WordPress Güvenliğinin Nasıl Geliştirileceğine Dair Uzman Kılavuzları
Umarız bu makale web sitenizin güvenliğini artırmak için belirli WordPress dizinlerinde PHP çalıştırmayı nasıl devre dışı bırakacağınızı öğrenmenize yardımcı olmuştur. Diğer bazı güvenlik tekniklerini de öğrenmek isteyebilirsiniz. WordPress güvenliğini artırmaya yönelik en iyi kılavuzlarımızdan bazılarını burada bulabilirsiniz:
- Nihai WordPress Güvenlik Rehberi (Adım Adım)
- WordPress Güvenlik Denetimi Nasıl Yapılır (Eksiksiz Kontrol Listesi)
- WordPress Sitenizi Potansiyel Olarak Kötü Amaçlı Kodlara Karşı Tarama
- Kötü Amaçlı Yazılımları ve Hack’leri Tespit Etmek için En İyi WordPress Güvenlik Tarayıcıları
- WordPress’te İki Faktörlü Kimlik Doğrulama Nasıl Eklenir (Ücretsiz Yöntem)
- WordPress Giriş Ekranına Güvenlik Soruları Ekleme
- WordPress Güvenlik Anahtarlarının Ne, Neden ve Nasılları
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Mrteesurez
I see this as a great form of securing a website by disabling PHP execution in folders. According to this article, only two directories are secured, what of others ? Have they secured naturally or hackers don’t need it during the attempt ?
WPBeginner Support
Other sections of your site’s files normally require stricter access or have php files that are required to work for your site to work.
Yönetici
Jiří Vaněk
Thanks for these safety tips. I have created an htaccess file and will upload it to FTP. I have a website on my own server, so the question of security is entirely up to me. Thanks for the next step in making my WordPress a little more secure again.
Unarine Leo Netshifhefhe
I also have this alert on my Updraft plugin where backups are not happening can this be due to htaccess?
“Backup directory could not be created…
The folder exists, but your webserver does not have permission to write to it. You will need to consult with your web hosting provider to find out how to set permissions for a WordPress plugin to write to the directory. (wp-content/updraft)”
WPBeginner Support
That looks to be a file/folder permissions issue, you would want to reach out to your hosting provider and they can help, you can also take a look at our guide below:
https://www.wpbeginner.com/beginners-guide/how-to-fix-file-and-folder-permissions-error-in-wordpress/
Yönetici
Brian Prom
FYI: you have a typo in your code snippet for the .htaccess snippet.
Using your code snippet as is (without the closing /) breaks image loading.
WPBeginner Support
Thank you for pointing that out, our code should be fixed
Yönetici
Vitor Gonçlaves
I’ve found some .php files in the uploads folder created by plugins. Can I assume this won’t cause a problem, or do I have to analyse each plugin individually?
WPBeginner Support
If you reach out to your plugins they can let you know the specifics for those files.
Yönetici
nirbo
Thanks for the information
WPBeginner Support
You’re welcome
Yönetici
cliff denney
thank you very much
WPBeginner Support
You’re welcome
Yönetici
Suman Samanta
Great writing! You have a flair for informational writing. Your content has impressed me beyond words. I have a lot of admiration for your writing. Thank you for all your valuable input on this topic.
WPBeginner Support
Thank you, glad you enjoy our writing
Yönetici
Thato
Guys i think i have messed up my htaccess file, my website is completely not displaying images
WPBeginner Support
Hey Thato,
You can download your .htaccess file to your computer as a backup and then delete it from your website. Go to WordPress admin area Settings » Permalinks and click on the save changes button. This should regenerate your .htaccess file.
Yönetici
Shawn Rebelo
Do not do wp-content.
Do wp-content/uploads.
And this:
order allow,deny
deny from all
May very on servers.
Hardik
Does it affect the uploads file to upload on webpages?
I found that after uploading this htaccess file to the folder many of images from many posts are not displaying.
Chuck Cochems
Yeah, denying access to php files in the includes directory breaks the site because including actually obeys .htaccess restrictions.
But the restriction on the uploads directory is very smart, and this should be there .BY DEFAULT in the uploads directory, and there’s no good reason for it not to be present.
Stan
What’s the method for IIS servers?
Thanks,
KOnnie
ZOMG! can’t you just disable write access to /wp-includes folder?
Why fight with consequences when you can prevent the cause?
Jonathan Hodgson
Wouldn’t this stop wordpresss being able to update the files in core updates?
Jeff Wigal
You can also put this in your Apache virtualhost, which will accomplish the same thing:
Order allow,deny
Deny from all
anton
how to implement this code if we have combination of lower case and upper case on file extention for example on.php on my website its work but it s not working if the file named with.PHp ,.PHP .PhP or combination of them,the backdoor script still executed
Thank you
Timothée Moulin
You can put this in your .htaccess file
Order Deny,Allow
Deny from All
Shams
Hi Syed,
Thanks for such an informative post and in fact it provides a great solution for saving WordPress from hackers.
Vladimir
Hi!
I followed all your instructions in this article, but Its not working…
Thanks
Aurélien Debord
A so useful post with such good and quick tips.
Thanks
Ramon
I created an .htaccess file in the wp-includes folder. Site looked oke but my WYSIWYG editor in the admin pages wasn’t working. Had to remove the .htaccess file again. (WP 3.9.1)
Wes
I also found my wp-includes folder full of php files and I can’t see how using that .htaccess file in there wouldn’t break something. I did use it in the uploads dir.
Editorial Staff
It does break it sometimes (depending on the plugin you are using), but not all the time.
Yönetici
Red
forgive my bad english…
i followed all your instructions in this article, but when i go my dashboard to add a newpost, my post section was messed up. … i suspect the .htaccess was the problem.
when i deleted it, the post was fine.
Editorial Staff
Which directory did you upload the .htaccess file that caused this issue?
Yönetici
Chris
I added the .htaccess file to my wp-includes and didn’t have any problems. Thanks a lot of the tips.
Brad
I tried this in my /wp-includes/ directory, which is full of php files. Of course I could no longer access the site. Did you really mean to include the includes directory for use with the .htaccess file?
Did you maybe mean /wp-includes/images ?
Editorial Staff
Nope. We meant /wp-includes/ folder. We have this on our wp-includes folder. If for some reason it is breaking your site, then delete the .htaccess file from your wp-includes folder.
Yönetici
Brad
Strange, my wp-includes folder has over 90 php files in it. And it does break the site. I took it back out immediately.
But I did put it in the /wp-content/uploads/ folder and its works just fine there. Thanks for responding
Alfred
Putting an htaccess file denying access to php files in a directory full of php files does seem rather odd. I assume it’s because these files are normally only included, not executed directly. If that’s true, wouldn’t it be better to just deny access to the entire directory?