Archives For Plugin

Il titolo è volutamente simile a quanto già scritto poco tempo fa, e vuole analizzare alcuni consigli che anche io cerco di dare a chiunque si mette a preparare una nuova installazione WordPress (spero prima per sé, poi forse –con buona esperienza sulle spalle– anche per altri), anche se in realtà i concetti di base valgono per qualsiasi accesso a qualunque servizio disponibile sulla grande rete. Basandomi sul blog di chi iThemes Security lo scrive, riporto alcuni passaggi secondo me fondamentali.

WordPress e Authy: autenticazione OneTouch 6

According to this infographic by WP Template on WordPress safety, insecure WordPress themes and plugins contribute to over 50% of all successful WordPress hacks.

Plugins and themes have to go through a screening process before they are released for public use from the WordPress.org plugin repository, so it is important to download your plugins and themes from trustworthy sources and always keep active themes and plugins update to the latest version.

fonte: ithemes.com/2016/11/08/wordpress-hacks

e ancora:

Using the same password on multiple sites is risky.

Using strong passwords for all your logins is one of the best online security practices you can develop.

The best practice to follow is creating a different password for every sing website you are registered on. Definitely don’t use the password you use for your bank account on another site.

An average of 30,000 sites are hacked every day.
This should give you an idea of how many people are affected by cyber attacks, and motivate you to use stronger passwords.

fonte: ithemes.com/2016/11/04/brute-force-attacks

Che poi non è che proprio ci voglia la scala eh. Strumenti come KeePass o simili (anche quelli completamente in cloud) sono fatti apposta per ricordarti password altrimenti (probabilmente) molto difficili da ricordare, soprattutto quando decidi di lasciare fare loro nella fase di generazione di una nuova password complessa. Vale anche il vecchio (ma ancora perfetto) consiglio del “utilizza password apparentemente stupide“, perché ti assicuro che “Il cavallo bianco di Napoleone!” può essere una password certamente più complessa della targa della tua automobile (puoi provare tu stesso su passwordmeter.com, tanto per levarti la curiosità).

Sulla base di ciò, è semplice stilare una ToDo List da tenere sempre bene a mente:

  • Sempre tenere aggiornato il tuo WordPress. Questo vale per il motore principale del CMS, ma anche (soprattutto, in realtà) plugin, temi e codice personalizzato che potresti aver scritto e poi dimenticato lì dopo poco, offrendo una possibile backdoor poco simpatica. Se il server che lo ospita è controllato da te, occorre tenere aggiornato ciò che gli permette di stare online (server web, MySQL, PHP, ecc.).
  • Disinstallare sempre plugin e temi non più utilizzati. Perché qui non si tratta solo di pulizia (sicuramente necessaria per tenere sempre snella l’installazione), ma perché così si vanno a chiudere possibili ulteriori falle, esattamente come da ragionamento del precedente punto della lista.
  • Utilizzare password complesse per ciascun account, possibilmente. Perché se è vero che il tuo blog è aperto alle iscrizioni (e si basa così sul buon senso dei tuoi utenti), è -spero- anche vero che tu possa stabilire delle regole precise per le password di coloro che possono pubblicare qualcosa, o peggio che possono modificare il comportamento del blog intero (un amministratore, tanto per essere chiari).
  • Abilitare l’autenticazione in due fattori per WordPress. E qui ti rimando all’articolo dedicato ad Authy e alla sua possibile integrazione con WordPress, comoda, funzionale, sicura.
  • Cancellare o declassare l’account “admin” predefinito di WordPress. Detto e stradetto, anche nel mio precedente articolo sulla protezione degli accessi alla Dashboard amministrativa, perché quell’utente creato di default nel database, è sempre scomodo e attaccabile (perché è quello che si da per scontato che esista).
  • Scegliere un buon hosting provider per il proprio CMS. Perché la sicurezza comincia dalle fondamenta, e affidarsi a chiunque non è –probabilmente– la migliore scelta, almeno per come la vedo io (e non solo). Un buon partner (perché di questo si tratta, nda) è quello che è sempre attento e pronto ad affrontare una difficoltà, a suggerirti le prossime mosse da fare, a bloccare chi è sgradito prima che faccia danni (più di quanti ne abbia già fatti entrando nel tuo sistema), e che ci tiene alla salvaguardia dei tuoi dati ma anche di coloro che abitano nel tuo stesso “condominio” (quando si parla di hosting condiviso, molto diffuso e primo step per tutti).
  • Scarica plugin e temi solo da fonti sicure. Evita come la peste siti web che promettono di regalarti il tema all’ultimo grido, creati con ore di sudato lavoro e ricchi di plugin solitamente a pagamento, pacchetti “all-in-one” appositamente clonati da siti web che li vendono e supportano quotidianamente. Spesso quei temi contengono codice malevolo, codificato (quindi di difficile decodifica per chi è alle prime armi), da qui in poi è tutto un salto nel buio. Se pensi che un tema sia assolutamente irresistibile, valuta l’acquisto della sua licenza, otterrai così anche un aiuto qualificato in caso di problemi, certamente meno costoso di qualcuno in grado di rimetterti in piedi dopo un deface (o simile) ai danni del tuo sito web.

Hai altri consigli? Vuoi raccontare la tua esperienza e dare qualche suggerimento in merito? L’area commenti –manco a dirlo– è a tua completa disposizione :-)

Condividi l'articolo con i tuoi contatti:

Qualche tempo fa ho avuto un problema piuttosto fastidioso: qualcuno ha deciso che uno specifico articolo di questo blog era poco gradito, buon (?) motivo per rompermi le scatole e saturare le risorse messe a disposizione dal mio hosting provider (che ringrazio per la pazienza). Per cercare di correre ai ripari, ho incattivito l’opzione di un plugin che già utilizzavo e che utilizzo ancora oggi, iThemes Security (ex Better WP Security).

Proteggere WordPress da login non autorizzati

Ci sono molteplici modi per proteggere l’accesso al wp-login.php, questo è uno tra i tanti attuabili senza molta fatica, una soluzione tutto sommato semplice da mettere in piedi.

Il mio consiglio? Fallo dopo aver chiuso l’accesso al sito web “al pubblico“, perché se è vero che sei sotto attacco, è anche vero che le risposte del tuo blog potrebbero andare in timeout, non arrivare mai. Per chiudere l’accesso a tutti tranne che a te dovrai conoscere il tuo indirizzo IP (mioip.it aiuta in questi casi) e sbarrare le porte grazie al file htaccess. Farlo è semplice, ti basterà creare (o modificare quello esistente) il file inserendo questo pezzo di codice:

order deny,allow
deny from all
allow from 127.0.0.1

Sostituisci il 127.0.0.1 con il tuo IP, carica il file .htaccess nel tuo spazio web (ripeto: se lo hai già, modifica quello che hai e non sovrascriverlo) e il gioco è fatto. Nessuno potrà visitare il tuo sito web a eccezione di te. Così facendo dovresti tagliare fuori il resto del mondo e avere campo libero per lavorare.

Installa iThemes Security e attivalo, così possiamo passare alla sua configurazione, e nello specifico quella utile a proteggere il blog da ripetuti tentativi di accesso alla dashboard di amministrazione o a un URL in particolare (giocando un pelo in contropiede e cambiando le carte in corsa, per poi rimetterle al loro posto).

Il plugin propone moltissime opzioni che ti consiglio caldamente di analizzare, ragionare e attivare secondo tue necessità, io preferisco saltare sulla singola esigenza di stavolta, andiamo con ordine.

404 detection

Servirà a proteggerti da chi tenta di raggiungere costantemente URL non esistenti, le sue impostazioni (e i limiti oltre i quali mandare in ban l’IP di chi ci sta provando) si trovano però in Global Settings, nello specifico parlo di:

  • Blacklist Repeat Offender, che deve essere assolutamente attivo.
  • Blacklist Threshold, che corrisponde al numero di tentativi da abbuonare all’IP prima di escluderlo in maniera definitiva (impedendogli di visualizzare il sito web).
  • Blacklist Lookback Period, che corrisponde al numero di giorni durante i quali quell’IP continuerà a rimanere sotto controllo (per capirci: se il limite di lockout è 2, per il numero specificato di giorni basterà farne un altro per andare in ban, una soluzione molto secca, tanto chi attacca generalmente raggiunge il limite di lockout nel giro di qualche minuto al massimo).
  • Lockout Period, che corrisponde all’intervallo di tempo (in minuti) di allontanamento di quell’IP dal blog.
  • Lockout White List è invece il box adatto a raccogliere gli IP che non devono essere soggetti alle impostazioni sopra riportate.

In tutto questo, nella stessa tab (Global Settings, nda), potrai scegliere di essere avvisato dei lockout e dei ban a mezzo posta elettronica (l’opzione da spuntare è Enable Email Lockout Notifications), che poi è un po’ come avere l’immediato polso della situazione …

Proteggere WordPress da login non autorizzati 1

e pensa che quella che vedi qui sopra è solo una parte dei ban a me notificati nel periodo dell’attacco, in pratica un campo di battaglia senza esclusione di colpi (sono arrivato a toccare quota 400 ban circa in un paio di giorni).

Banned Users

Passa ora alla tab Banned Users e imposta ciò che credo possa esserti più utile, ovvero:

  • Default Blacklist, che ti permetterà di sfruttare liste già popolate e verificate, offerte da HackRepair.com.
  • Enable Ban Lists, che manco a dirlo è tutto ciò che serve per iniziare a fare la raccolta differenziata di IP che servono evidentemente poco alle tue visite, ma che minano per troppo tempo la tua pazienza.

Volutamente non ho specificato (almeno fino a oggi) degli User Agents specifici. Generalmente quelli più fastidiosi vengono lasciati liberi nel web da player molto grandi, motori di ricerca, servizi. Ricorda che potrai comunque appoggiarti a questa ulteriore funzione in qualsiasi momento, in caso di necessità.

Local Brute Force Protection

Ciò che più va a “braccetto” con la protezione relativa agli errori 404, opzioni che riguardano stavolta il login alla Dashboard amministrativa di WordPress e che –secondo me– devono essere altrettanto restrittive e di difficile perdono, perché se sei davvero il gestore del blog, hai anche la possibilità di chiuderti fuori dalla porta ma conoscere il trucco delle chiavi sotto al tappeto, andando a disabilitare il plugin (rinominando la sua cartella nello spazio FTP) in caso di errore ripetuto e non voluto.

  • Max Login Attempts Per Host: specifica qui il numero di tentativi massimi di login per un singolo host (IP) prima di finire nella lista dei cattivi, in alternativa puoi lasciarlo a zero per evitare di mandare in ban l’indirizzo IP e decidere di rendere sufficientemente cattivo il Max Login Attempts Per User, che si riferisce invece al numero massimo di login di uno specifico utente (che può utilizzare più IP sorgenti, giusto per capirci).
  • Minutes to Remember Bad Login (check period) indica, come per il Blacklist Lookback Period di prima, il tempo che deve passare prima che il plugin dimentichi uno dei tentativi andati a male precedentemente.
  • Automatically ban “admin” user è –infine– quella che preferisco, perché la prima regola di qualsivoglia installazione di WordPress è quella di andare a disattivare o eliminare completamente l’admin creato di default dall’installazione, creandone uno che abbia uno username del tutto differente. Se qualcuno tenta di entrare come “admin” nel tuo blog, probabilmente si tratta di un bot, meglio estirparlo sul nascere, senza pensarci due volte.

C’è altro?

Si, molto. C’è da dare un’occhiata alla Network Brute Force Protection, alla File Change Detection (ciò che ti avvisa nel caso in cui vengano modificati dei file), alla WordPress Tweaks (per disattivare opzioni non necessarie e regolare l’accesso a risorse di WordPress) e tanto altro ancora, davvero. Prenditi il tempo necessario, studia tutte le possibilità offerte dal plugin, valuta se l’opzione Pro (a pagamento) proposta dallo stesso sviluppatore fa al caso tuo, imposta la migliore configurazione tenendo presente che in caso di configurazione errata o particolarmente cattiva, potrebbe chiuderti fuori dalla porta senza neanche passare dal via e prendere le duemila lire.

Quanto fatto però non basta, perché se l’attacco è verso uno specifico URL esistente, dovrai temporaneamente mettere offline il contenuto, oppure scegliere di cambiargli indirizzo, almeno per un periodo durante il quale ogni attacco non andrà a buon fine e porterà direttamente al ban, raccogliendo una serie di IP dai quali proteggersi. Concludi l’operazione andando a rimettere a posto il file .htaccess precedentemente modificato, per permettere a tutti di accedere nuovamente al blog. Le risorse del provider saranno ora più che sufficienti e potrai sopportare nuovamente il tuo carico di visite, quelle vere e assolutamente gradite.

Dopo aver adottato la soluzione, ho potuto rimettere abbastanza rapidamente online il contenuto precedentemente attaccato, che ancora oggi fa parte degli archivi di questo blog e che spero possa rimanere lì per molto altro tempo (no, non dirò di quale si tratta) :-)

L’area commenti è –come sempre– a totale disposizione per ulteriori soluzioni, alternative, commenti, critiche costruttive e per raccolte di “beneficenza“, che Natale si avvicina e sta baracca bisogna pur pagarla per tenerla viva e vegeta.

Estote parati (cit.).

G

Condividi l'articolo con i tuoi contatti:

WordpressHackSourceCodeSe usi WordPress sai già che l’avatar di ciascun autore viene generalmente cercato (e quindi caricato, se trovato) su Gravatar, ottimo servizio (realizzato e tenuto in piedi da chi di WordPress dovrebbe intendersene, ;-)) che centralizza la gestione dei propri avatar, permettendoti di stabilire le corrispondenza tra indirizzo di posta elettronica utilizzato e immagine da mostrare. Dato però che alcuni non lo utilizzano, il problema del “cosa mostro” si pone nel momento in cui questi diventano autori di un blog che mostra quella fotografia mancante, generalmente rimpiazzata da una delle proposte di default di WordPress, non esattamente il massimo della bellezza.

Come rimediare? Semplice. Si definisce un “Custom Avatar” aggiuntivo che magari mostri il logo del sito web (o del prodotto che si intende far conoscere) e lo si fa comparire tra le possibili scelte dell’impostazione Default Avatar (quella che si trova sotto SettingsDiscussionAvatars) in Dashboard amministrativa. Ho aperto il file functions.php del tema di Fuorigio.co (dove il problema si è presentato) e ho aggiunto questo codice (te lo spiego subito dopo):

// New Default Avatar - Personalizzato Fuorigio.co
function fCoCustomAvatar ($avatar_defaults) {
    //$myavatar = get_bloginfo('template_directory') . '/images/IlTuoAvatar.png';
    $myavatar = 'http://www.gravatar.com/avatar/7fe86e7de2f3b97891004619d394ac9b?s=100';
    $avatar_defaults[$myavatar] = "Custom Fuorigio.co";
    return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'fCoCustomAvatar' );

Altro non è che l’ennesima funzione che va a ritoccare il comportamento predefinito del software, specificando un nuovo avatar che si andrà ad aggiungere a quelli proposti da installazione pulita di WordPress. Fai attenzione a:

//$myavatar = get_bloginfo('template_directory') . '/images/IlTuoAvatar.png';
$myavatar = 'http://www.gravatar.com/avatar/7fe86e7de2f3b97891004619d394ac9b?s=100';

Sono due righe che in realtà si occupano di fare la stessa operazione, puoi togliere e posizionare il commento (//) dove preferisci, in base all’esigenza. La prima (commentata, nel mio caso) prevede l’utilizzo di una immagine (IlTuoAvatar.png) che dovrai inserire nella cartella “images” del tuo tema. Ovviamente potrai cambiare il nome dell’immagine e la posizione in cartella in base alla tua situazione.

La seconda (quella che utilizzo) non carica l’immagine dalla cartella del mio hosting, ma pesca direttamente un file online, dai server di Gravatar. Il pro di questa scelta è che rendi dinamico il cambio dell’immagine (gestita tramite Gravatar e associata a uno specifico indirizzo di posta, appunto), il contro è che, nel caso in cui il servizio non funzioni correttamente, non verrà visualizzata sul tuo sito web, rallentandone anche il caricamento di pagina. Pillola rossa o pillola blu? ;-)

$avatar_defaults[$myavatar] = "Custom Fuorigio.co";

Determina il nome dell’avatar di default che potrai selezionare nella lista di quelli disponibili. È un fattore puramente estetico ma -si sa- anche l’occhio vuole la sua parte. Il resto può e deve rimanere invariato. Una volta salvato il file e caricato nuovamente sullo spazio FTP (a meno di non fare la modifica in diretta), aggiorna la pagina delle opzioni di Discussion, dovresti poter finalmente notare il risultato della tua “fatica“:

WordPress: aggiungere un avatar di default (per chi non ce l'ha)

Selezionalo, salva le modifiche, goditi la novità.

Cheers.

p.s. Se non vuoi star lì a modificare il codice del tuo functions.php, puoi sempre ricorrere a un plugin che faccia lo stesso identico lavoro, come “Add New Default Avatar“:

Add New Default Avatar
Add New Default Avatar
Developer: Kailey Lampert
Price: Free
Condividi l'articolo con i tuoi contatti:

Non so se ti è mai capitato di dover sostituire in un solo colpo tutti i riferimenti a un testo o un link ben preciso all’interno degli articoli del tuo blog. A me si, è arrivata la richiesta (non molto tempo fa a dirla tutta) di modificare i puntamenti verso un sito web che ha cambiato dominio, e che avevo citato in diverse occasioni qui nel mio blog. Si è trattata di una domanda lecita alla quale ho dato risposta portando a termine la modifica. Ho eseguito una semplice query MySQL via phpMyAdmin, ma ho voluto cercare un’alternativa nel caso in cui di fronte al monitor ci sia una persona che non si fida delle operazioni a cuore aperto sul database.

WordPress: suggerimenti sulla gestione delle immagini 2

L’alternativa che ho trovato e provato si chiama Better Search Replace, è gratuita e si trova nel repository ufficiale dei plugin di WordPress:

Better Search Replace
Better Search Replace
Developer: Delicious Brains
Price: Free

È un plugin molto utilizzato, perfettamente compatibile anche con le ultime versioni di WordPress e non fa altro che simulare il tuo intervento sul database MySQL, facilitando (e di molto) la costruzione di ciò che si vuole ritoccare, lasciando al codice sorgente ciò che potrebbe esserti più ostico da imparare e saper maneggiare. L’utilizzo è banale e può simulare l’operazione prima di lanciarla sul serio, così da permetterti di capire cosa il programma andrà a ritoccare nel tuo database dove le tabelle di WordPress potrebbero contenere il testo o i collegamenti da modificare.

Dalla dashboard del blog, ti basterà accedere a ToolsBetter Search Replace, da qui potrai vedere le tabelle contenute all’interno del database (box Select Tables), le quali saranno selezionabili proprio per permettere al plugin di effettuare la ricerca al loro interno, con eventuale successiva sostituzione testo. Nel box Search for andrà inserito il testo da ricercare all’interno delle tabelle, mentre in Replace with ciò che prenderà il suo posto. Se vuoi assicurarti che nulla andrà storto, seleziona l’opzione in corrispondenza di Run as dry run? (If checked, no changes will be made to the database, allowing you to check the results beforehand), ti permetterà di ottenere comunque un risultato a video (potrai anche leggerne il dettaglio come da seconda schermata nella galleria di seguito), ma senza effettuare realmente la modifica al database.

Tutto pronto? Sei tranquillo? Ok, lancia la modifica allora, non impiegherà poi tanto (a meno di voler sostituire mezzo contenuto dei database). Al termine ti verrà notificato e potrai -se vorrai- disattivare o disinstallare il plugin se non lo ritieni più utile.

Questo tipo di modifiche le ho operate in passato anche tramite Redirection, il plugin ben più complesso e ideato per altri motivi, ma che può tornare utile anche per questo mestiere. Se lo utilizzi già, sappi che ti basterà cercare parte dell’URL che vuoi sostituire e farlo anche tramite lui, è solo un pelo più macchinoso e forse lento.

Condividi l'articolo con i tuoi contatti:

Pillole

Le pillole sono articoli di veloce lettura dedicati a notizie, script o qualsiasi altra cosa possa essere "divorata e messa in pratica" con poco. Uno spazio del blog riservato ai post "a bruciapelo"!

Un errore partorito nella versione 3.6.0 di BackUpWordPress, non permette di gestire correttamente il numero di backup da conservare nel caso in cui il plugin non sia in grado di ottenere lo spazio libero sul disco del server, un po’ come mostrato in questa immagine catturata da una mia installazione:

Unable to modify 'Free space' and number of backups to store #1050

Cosa cambia? Assolutamente nulla. I backup continueranno a essere regolari, non potrete però modificarne la quantità da conservare. Si tratta di un bug che ho segnalato immediatamente al supporto (wordpress.org/support/topic/cant-get-free-disk-space-cant-modify-number-of-backups-to-store?replies=3#post-8223635), il quale ha verificato e riconosciuto l’anomalia, che verrà corretta nella prossima 3.6.1 (come da bug aperto su GitHub: github.com/humanmade/backupwordpress/issues/1050).

Giusto per la cronaca: non c’è modo di variare da configurazione WordPress il numero di quei backup, a meno di mettere mani direttamente al database, cosa che vi sconsiglio caldamente di fare.

Buon lavoro!

Condividi l'articolo con i tuoi contatti: