Come posso proteggere un'installazione di WordPress?

26

Come proteggi un'installazione di WordPress predefinita?

Che checklist usi, buone pratiche, consigli e suggerimenti, ecc.?

Qualsiasi suggerimento sui plugin, strumenti di terze parti sono i benvenuti.

    
posta Nuno Morgadinho 18.11.2010 - 23:26
fonte

9 risposte

15

In realtà, sul sito di wordpress è disponibile un'ottima guida: Hardening WordPress .

Tuttavia la mia personale lista di controllo breve è

  • mod_security - @atdre ha già menzionato mod_security, è un ottimo passo. Tuttavia richiede un sacco di modifiche al set di regole di base per consentire a wordpress di funzionare correttamente. Probabilmente avrai anche bisogno di personalizzare il set di regole in base ai plugin che utilizzi.
  • Autorizzazioni file - vedi qui
  • Amministrazione su SSL : utilizza SSL per l'area di amministrazione, vedi qui .
  • Aggiornamento - il più critico a mio avviso mantiene aggiornato wordpress. Utilizzando gli strumenti creati, applicando le patch manualmente o utilizzando uno script di aggiornamento (ho scritto questo uno).
risposta data 19.11.2010 - 00:24
fonte
5

ModSecurity con il set di regole di base non è male, ma è meglio configurarlo in modo esplicito per ogni input che l'app richiede, oltre a correggere l'output senza escape che invia sull'outbound. Funziona meglio in modalità proxy completo, ma include alcuni altri vantaggi esclusivi. Potrebbe essere intelligente usare entrambi, specialmente dal momento che Wordpress è insicuro.

    
risposta data 18.11.2010 - 23:32
fonte
4

Un passo sarebbe quello di proteggere il server (che di solito è Apache) che è descritto nelle risposte della mia domanda precedente di Hardening Apache Server

    
risposta data 18.11.2010 - 23:45
fonte
2
  1. Modifica il nome utente dell'account amministratore. Se un hacker conosce già il tuo nome utente è metà della battaglia e cercherà di indovinare la tua password.
  2. Modifica il prefisso della tabella di WordPress durante l'installazione.
  3. Usando un file .htaccess puoi bloccare la tua directory wp-admin in base all'indirizzo IP. Ciò significa che solo gli indirizzi IP specificati possono accedere agli URL del dashboard di amministrazione.
  4. Imposta una password complessa per l'accesso di amministratore e l'accesso ftp.
risposta data 02.08.2011 - 11:26
fonte
1

Oltre agli ottimi consigli sopra, ho un altro suggerimento: di recente ho pubblicato un plugin per Wordpress che potresti trovare utile. Lo chiamo Foresight . È disponibile per il download dalla directory dei plugin di Wordpress:

link

(È anche rispecchiato su github .)

Il plug-in è piuttosto semplice: tutto ciò che fa è caricare un collegamento "Previsione" nella sezione "Strumenti" della barra laterale quando hai effettuato l'accesso come amministratore. Se fai clic su quel link, ti verrà presentata una serie di iframe a schede, ognuno dei quali mostra i più recenti exploit di Wordpress trovati sui seguenti popolari tracker di exploit:

Questo strumento non è particolarmente elaborato o altro. (Lo considero uno strumento stupido per un amministratore intelligente), in quanto alla fine sta solo caricando un mucchio di iframe. Per usarlo, basta caricarlo periodicamente e sfogliare gli exploit, tenendo d'occhio gli exploit nel core di Wordpress o nei plugin che usi. Se trovi un simile exploit, puoi quindi prendere una decisione intelligente sul modo migliore di procedere.

Ho creato questo plugin perché, dopo la recente debacle di TimThumb, mi è apparso evidente che molti amministratori di Wordpress non tengono d'occhio i tracker degli exploit. La mia speranza è che questo renderà leggermente più facile farlo.

    
risposta data 29.05.2012 - 19:47
fonte
1

Aggiungerò anche la mia risposta:

Metodi per aumentare la sicurezza (MUST-HAVE):

  • Utilizzo di HTTPS (esiste anche ssl gratuito per "Let's encrypt").

  • Non digita credenziali su PC / WIFI pubblico / sconosciuto (se ho bisogno di internet al volo, condivido internet dal mio cellulare al mio portatile)

  • Utilizzo di password sicure

  • avendo solo 1 admin (me stesso) e gli altri come editor, ecc ...

  • Iscrizione a wpvulndb.com per le notizie di tutti i giorni.

  • Verifica dei siti con plug-in Pen-Test (come questi ).

  • Utilizzo del plug-in di autorizzazione a due vie

  • Modifica Nicename & DisplayName - impostali diversi da username .

  • Disattiva gli avvisi sulla pagina di accesso (utilizzando il iThemes plug-in)

  • Blocco brute-force (utilizzando il iThemes plug-in)

  • Modifica wp-admin url (utilizzando il iThemes plug-in)

  • Disabilita le modifiche ai file PLUGIN / THEME dal dashboard (utilizzando il iThemes plug-in)

  • In alcuni casi, utilizzando il plug-in IP LOGIN RESTRICTOR (blocca tutti gli IP non consentiti se tenta di inserire qualsiasi pagina in /wp-admin area.

  • installa plugin di sicurezza (come iThemes), che fa:

  • Se il sito specifico è ALTAMENTE CRITICO, io uso solo i plugins e il tema **, che è la fonte che ho controllato line-by-line per sicurezza.

  • attiva gli aggiornamenti automatici per CORE & PLUGINS & TEMI !

  • usa il plug-in "blocco di IP / bot non valido"

  • installazione del plug-in Attività per ispezionare le attività di volta in volta.

  • controlla i record di accesso per gli IP se qualcuno è entrato da un altro paese.

  • Esci se usi internet pubblico.

Parti ancora vulnerabili:

  • qualcuno potrebbe ignorare autorizzazione a due vie , wp-admin backend di offuscamenti o altre restrizioni usando:

    • "COOKIE Forza bruta" (anziché la verifica della password dell'utente).

    • L'app WordPress su Android (non richiede dettagli a 2 fattori, perché ha il modo di connettersi a WP)

    • Comandi JSON-API (non richiede dettagli a 2 fattori o ecc ...)

"Consigli inutili" :

Potresti aver sentito molti di questi, ma sono inutili:

  • Nascondere tutti i link wp-* nell'origine (abbastanza inutile, qualcuno controlla solo qualsiasi file, cioè example.com/wp-settings.php per 200 codice HTTP).

  • Nascondere la versione / readme di WordPress (inutile, perché qualcuno potrebbe controllare l'origine del sito e capirà quale versione si sta utilizzando)

  • Modifica dell'amministratore username (inutile, chiunque può visualizzare i tuoi nomi utente in: yoursite.com/wp-json/wp/v2/users a meno che tu non faccia quello che ho detto in alto)

risposta data 04.03.2018 - 11:45
fonte
0

Ci sono centinaia di articoli su questo argomento. Si prega di leggere i seguenti articoli.

Se puoi permetterti, affitta un server dedicato in modo che altri siti Web compromessi che sono ospitati nella stessa casella del tuo non ti influenzino. Puoi fare tutto ciò che puoi per assicurarti che il tuo sito web sia sicuro, ma se il tuo host utilizza una versione obsoleta di Apache o Linux, quella sola potrebbe essere la tua fine.

Effettua regolarmente un checksum e / o una revisione del codice sui tuoi plugin. È normale che gli hacker inseriscano shellcode nei plug-in, sia perché non ci si aspetterebbe che / lo cerchino lì, sia perché verrà eseguito ogni volta che viene eseguito il plug-in. Se trovi dei plug-in che non puoi verificare di aver installato, rimuovilo. Tieni d'occhio anche la data in cui un plug-in è stato modificato per l'ultima volta, documenta ogni modifica apportata a un plug-in.

Se è necessario memorizzare le password, farlo in modo sicuro. Utilizzare un algoritmo di hash strong con un sale per utente (non ci dovrebbero essere due sali uguali). Gli utenti salt (se archiviati) dovrebbero essere in un database separato. Leggi questo articolo (OSWASP) su come memorizzare le password in modo sicuro.

Parlando di database, usa la regola dei privilegi minimi. Controllare se le credenziali dell'utente sono corrette non richiede i privilegi di root.

Assicurati di eseguire la convalida su tutti gli input dell'utente . Per le ricerche, i campi di registrazione, ecc. Sarà facile, i commenti / le risposte non tanto. Imposta una whitelist di input validi, limita tutto il resto. Ad esempio, nella pagina di registrazione non vi è alcun motivo per autorizzare nient'altro che a-z, A-Z e 0-9 sul campo del nome utente. Tutto il resto dovrebbe essere esplicitamente limitato. Dalla mia esperienza, il modo più semplice per entrare in un sito Web (Wordpress o meno) è sfruttando la convalida incompetente. Utilizzare le whitelist e l'escape dei caratteri.

Account per tutti i vettori di attacco. Se stai solo facendo un'installazione di Wordpress, la sua sicurezza è relativamente semplice. Tuttavia, in futuro è possibile installare plugin e applicazioni aggiuntivi (forum, e-commerce, analisi, ecc.). Devi quindi assicurarti che siano aggiornati e che tu disponga di password sicure.

Limita il numero di tentativi di accesso che un utente può tentare prima di essere bloccato. Personalmente, io uso il nome appropriato " Limitare i tentativi di accesso ", ma ce ne sono parecchi là fuori, ad esempio Accesso bloccato . Alcune persone usano anche un CAPTCHA sulla loro pagina di accesso, è una questione di preferenza. Ciò ridurrà enormemente le probabilità di un attacco di forza bruta (un metodo di penetrazione già scadente) dal successo. Abilita anche la registrazione opzionale.

Se hai bisogno di ulteriori informazioni, non esitare a contattarmi. Avevo ancora molto da aggiungere, ma ho deciso di rimuoverlo per risparmiare energia;)

    
risposta data 29.05.2012 - 22:57
fonte
0

Per l'autocontrollo potresti trovare plecost di interesse.

Consulta definitivamente il link per un elenco molto completo di tattiche e strategie. Altre risposte alla tua domanda hanno link altrettanto utili. Passa attraverso ognuno di essi a turno fino a quando non senti di avere una copertura adeguata.

Inoltre, sii MOLTO consapevole dei plugin che installi e di quanti. Mentre WordPress è in costante sviluppo e peer review, lo stesso non si può dire di molti di questi plugin. Ognuno rappresenta un rischio per la sicurezza e deve essere mantenuto.

    
risposta data 28.06.2012 - 18:30
fonte
0

Il plugin di sicurezza di iThemes è abbastanza buono per fare cose come cambiare i nomi di login, il prefisso del database, i sali e persino cambiando / nascondendo l'area di amministrazione e la pagina di accesso. È anche utile per controllare le autorizzazioni.

Qualcosa di cui non ho visto molto è come proteggere xmlrpc.php che è esposto agli attacchi DoS anche se si usa il plugin Jetpack e si passa "alla protezione". Ho trovato questo codice da inserire nel file .htaccess o apache per consentire solo l'accesso xmlrpc.php dall'intervallo IP di WordPress.

<files xmlrpc.php="">
Order Deny,Allow
Deny from all
Allow from 192.0.64.0/18
Satisfy All
ErrorDocument 403 http://127.0.0.1/
</files>

Si spera che questo sia utile o forse qualcuno conosce un modo migliore per proteggere xmlrpc.php?

    
risposta data 15.10.2016 - 21:23
fonte