Impedisci l'accesso o elimina automaticamente readme.html, license.txt, wp-config-sample.php


13

Solo una domanda veloce che potrebbe aiutare un po 'con la sicurezza. Ho notato che il file readme.html ha il numero di versione elencato. Riappare dopo ogni aggiornamento, così come licence.txt e wp-config-sample.php.

C'è un modo semplice per fare in modo che WordPress rimuova automaticamente questi file dopo un aggiornamento?

Ho già bloccato la visualizzazione del numero di versione nei metatag, nei feed rss, nell'atomo, ecc.

So che questo tipo di sicurezza non è esattamente che molto utile, ma solo pensato che potrebbe essere un piccolo inizio. Ho sentito che le persone possono semplicemente controllare la versione di jQuery inclusa in WP-include e riferimenti incrociati su quale versione di WP è stata spedita.

Risposte:


19

Non è davvero necessario rimuovere questi file. È molto più semplice bloccare l'accesso ad essi. Se stai usando URL belli hai già un file .htaccess. L'uso di .htaccess per bloccare i file è sicuro e devi aggiungere una direttiva una sola volta.

Il blocco dei file viene eseguito aggiungendo una direttiva a .htaccess in questo modo:

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

Quindi, per bloccare readme.html devi fare questo:

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

Fare lo stesso con il file di licenza o qualsiasi altro file a cui si desidera impedire l'accesso a chiunque. Apri .htaccess in Blocco note o in qualsiasi altro editor di testo di base, aggiungi le direttive e salva, assicurandoti che l'editor di testo mantenga esattamente il nome del file, senza alcun .txt alla fine.


1
Questa è in realtà l'opzione con cui ho finito. Funziona perfettamente.
Sahas Katta,

1
Attenzione , la sintassi sopra è valida solo fino ad Apache 2.2! Successivamente utilizzare Require all denied(sostituendo quelle 2 linee interne) per Apache 2.4 e versioni successive. Maggiori dettagli qui
Frank Nocke

5

Ecco la mia opinione:

RewriteRule (?:readme|license|changelog|-config|-sample)\.(?:php|md|txt|html?) - [R=404,NC,L]
  • 404 (non esistente) anziché 403 (vietato) per evitare qualsiasi indizio sull'esistenza.
  • anche nelle sottocartelle (ovvero temi e plugin, che potrebbero offrire opportunità di attacco)
  • senza distinzione tra maiuscole e minuscole, estensione flessibile, cattura anche README.html o license.html (sentiti libero di aggiungere sospetti tipici come i log delle modifiche | faq | contribuzione)

Personalmente, vorrei anche bloccare:

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

nb:

  • '?:' dichiara semplicemente che la parentesi non corrisponde (nessuna importanza).
  • richiede RewriteEngine di essere on(è molto probabile. Sarebbe raro, usare wordpress senza ... (brutti permalink, ecc ...)).
  • inserire prima della # BEGIN WordPresssezione nel tuo .htaccess

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

Modifica: puoi anche provare questi

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

Grazie, ho capito la funzione di scollegamento di php e funziona, ma un problema. L'hook che hai fornito sembra essere eseguito semplicemente visitando la sezione Aggiornamenti in Dashboard. Esiste un altro hook per dopo l'aggiornamento?
Sahas Katta,

1
Ill dare un'occhiata e farti sapere
Atif Mohammed Ameenuddin

@Sahas @ atif089 Sei riuscito a farlo funzionare?
INT

Invece di eliminare (nel caso in cui tu voglia davvero leggere il readme!) Puoi usarlo nella tua funzionechmod("/path/to/readme.txt", 0640);
Bysander
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.