Erişimi önleyin veya readme.html, license.txt, wp-config-sample.php dosyasını otomatik olarak silin


13

Güvenlik konusunda biraz yardımcı olabilecek kısa bir soru. Ben readme.html dosyasında listelenen sürüm numarası olduğunu fark ettim. Her yükseltme işleminden sonra yeniden görünür ve licence.txt ve wp-config-sample.php dosyalarında da görünür.

Yükseltmeden sonra WordPress'in bu dosyaları otomatik olarak kaldırmasının kolay bir yolu var mı?

Sürüm numarasının meta etiketler, rss yayınları, atom vb.

Bu tür bir güvenliğin tam olarak o kadar yararlı olmadığını biliyorum , ama sadece küçük bir başlangıç ​​olabileceğini düşündüm. İnsanların WP içerdiği jQuery sürümünü kontrol edebildiklerini ve WP'nin hangi sürümünün sevk ettiğini çapraz duyduğumu duydum.

Yanıtlar:


19

Bu dosyaları gerçekten kaldırmanıza gerek yoktur. Onlara erişimi engellemek çok daha kolay. Güzel URL'ler kullanıyorsanız zaten bir .htaccess dosyanız var. Dosyaları engellemek için .htaccess kullanmak güvenlidir ve yalnızca bir kez yönerge eklemeniz gerekir.

Dosyaları engelleme, .htaccess dosyasına aşağıdaki gibi bir yönerge ekleyerek yapılır:

    <files filename.file-extension>
         order allow,deny
         deny from all
    </files>

Yani, readme.html dosyasını engellemek için bunu yaparsınız:

    <files readme.html>
         order allow,deny
         deny from all
    </files>

Herkesin erişmesini engellemek için lisans dosyasıyla veya başka herhangi bir dosyayla da aynısını yapın. .Htaccess'i Not Defteri'nde veya başka bir temel metin düzenleyicide açın, yönergeleri ekleyin ve kaydedin, metin düzenleyicinin dosya adını tam olarak - sonunda herhangi bir .txt olmadan sakladığından emin olun.


1
Aslında bu benim devam ettiğim seçenektir. Mükemmel çalışıyor.
Sahas Katta

1
Yukarıdaki sözdiziminin yalnızca Apache 2.2'ye kadar geçerli olduğuna dikkat edin ! Daha sonra Require all deniedApache 2.4 ve üstü için (bu iç 2 çizgiyi değiştirerek) kullanın . Daha fazla ayrıntı burada
Frank Nocke

5

İşte benim almak:

RewriteRule (?:readme|license|changelog|-config|-sample)\.(?:php|md|txt|html?) - [R=404,NC,L]
  • Varlık hakkında herhangi bir ipucu vermemek için 403 (yasak) yerine 404 (mevcut değil).
  • ayrıca alt klasörlerde (yani saldırı fırsatları sunabilecek temalar ve eklentiler)
  • büyük / küçük harfe duyarlı olmayan, uzantı esnek, README.html veya license.html dosyasını da değiştirir (changelogs | faq | katkıda bulunanlar gibi tipik şüphelileri eklemekten çekinmeyin)

Şahsen ben de engellerdim:

RewriteRule \.(?:psd|log|cmd|exe|bat|c?sh)$ - [NC,F]

nb:

  • '?:' sadece parantezin eşleşmediğini bildirir (önemsizdir).
  • RewriteEngine olmasını gerektirir on(büyük olasılıkla. wordpress olmadan ... (çirkin kalıcı bağlantılar vb ...) kullanmak nadirdir.
  • insert önce# BEGIN WordPress sizin .htaccess bölümünde

3
add_action('core_upgrade_preamble','my_function_to_delete_files');

Düzenleme: Bunları da deneyebilirsiniz

add_action('upgrader_pre_install','my_function_to_delete_files');
add_action('upgrader_post_install','my_function_to_delete_files');

Teşekkürler, php unlink özelliğini anladım ve işe yarıyor, ama bir sorun. Sağladığınız kanca, yalnızca Kontrol Paneli altındaki Güncellemeler bölümünü ziyaret ederek çalışıyor gibi görünüyor. Yükseltme gerçekleştikten sonra başka bir kanca var mı?
Sahas Katta

1
hasta bir göz atın ve size bildirin
Atif Mohammed Ameenuddin

@Sahas @ atif089 Bunu çalıştırmayı başardınız mı?
INT

Silmek yerine (gerçekten benioku okumak istiyorsanız!) Bunu işlevinizde kullanabilirsinizchmod("/path/to/readme.txt", 0640);
Bysander
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.