Archives For PHP

Ammettilo, ti è capitato almeno una volta nella vita, hai cominciato a preparare un articolo sul tuo blog e lo hai pubblicato per sbaglio prima del dovuto, correndo poi ai ripari e riportandolo tra le bozze o per lo meno tra gli articoli non pubblicamente accessibili, cancellando eventuali rilanci su Social Network e simili. È fastidioso, genera qualche risposta 404 e il feed RSS comunque mostrerà quell’errore a meno di farlo ricostruire (pratica sconsigliata). Io ci ho messo una pezza (dopo aver fatto l’errore, chiaramente) tanto stupida quanto utile passando per il solito functions.php, un alert Javascript che chiede ulteriore conferma prima di procedere con la pubblicazione o l’aggiornamento di un articolo già pubblicato (e vale anche con la programmazione futura).

WordPress e sicurezza: alcune best practices 2

Prima di cominciare è sempre d’obbligo ricordarti che:

ATTENZIONE: Prima di eseguire qualsiasi modifica ai tuoi file e/o dispositivi sei pregato di effettuare un backup di questi (o lavorare in ambiente di test e mai di produzione). Solo così sarai capace di tornare indietro ponendo rimedio a eventuali errori di distrazione.

Ciò detto, cominciamo. Apri il file functions.php contenuto nella cartella del tuo tema e aggiungi questa porzione di codice in coda (o dove più preferisci in base alle tue esigenze):

$c_message = 'Stai pubblicando o aggiornando un articolo, procedo?';
function confirm_publish(){
	global $c_message;
	echo '<script type="text/javascript"><!--
	var publish = document.getElementById("publish");
	if (publish !== null) publish.onclick = function(){
		return confirm("'.$c_message.'");
		};
	// --></script>';
}
add_action('admin_footer', 'confirm_publish');

Salva il file e carica la modifica online nella modalità che più preferisci. Questa sarà immediata, collegata all’utilizzo del pulsante Pubblica / Programma, non appena ci farai clic sopra incontrerai questo popup:

WordPress: un messaggio di conferma prima della pubblicazione

Un clic su Ok permetterà all’operazione di concludersi, diversamente potrai fare clic su Annulla per evitare l’errore non voluto. Non è un trucco che ti cambia la vita ma è certamente un ulteriore strato che ti porta necessariamente a dover dare una conferma in più, se passi anche questa senza accorgertene allora vorrà dire che te la stai davvero cercando! ?

Per dubbi o domande puoi utilizzare l’area commenti a tua disposizione in coda all’articolo.


credits: trickspanda.com/add-confirmation-dialog-wordpress-publish-button
Condividi l'articolo con i tuoi contatti:

Ciao, articolo di servizio per dirti che – se mi stai leggendo per temponon devi aggiornare il plugin BackupWordPress allaneonataversione 3.9 rilasciata una manciata di ore fa (circa 16 a ora che sto scrivendo l’articolo), questa causa un errore fatale che manderà in crash il tuo blog e che ti costringerà a passare dalla porta di servizio per rimediare (la porta di servizio è quella offerta dal nuovo servizio di Recovery integrato in WordPress 5.2).

Non aggiornare BackupWordPress alla versione 3.9 (per il momento)

Il bug viene minuziosamente descritto qui su GitHub, segnalato da un utente che si è ritrovato nella medesima situazione del sottoscritto: github.com/xibodevelopment/backupwordpress/issues/1206. Come già successo in passato (vedi l’articolo Possibile problema in BackupWordPress 2.3) il modo di rimediare c’è e lo si può mettere in atto facilmente connettendoti in FTP al tuo spazio web e rinominando la cartella del plugin (wp-content/plugins/backupwordpress) in backupwordpress_ (per esempio, ma vale qualsiasi altro nome), questo non permetterà al tuo WordPress di trovare i file del plugin e di conseguenza disattiverà quest’ultimo consentendoti di far tornare operativo il sito web.

Rimanere con la vecchia versione fino a nuovo ordine

Se vuoi rimettere in pista la vecchia versione di BackupWordPress in attesa che ne venga rilasciata una nuova che corregge il bug puoi scaricarla direttamente dal repository ufficiale all’indirizzo downloads.wordpress.org/plugin/backupwordpress.3.8.zip. Scompatta il file ZIP, cancella la cartella attuale di BackupWordPress sul tuo spazio web e carica quella che hai appena scompattato, le impostazioni sono salvate nel tuo database e non verranno quindi perse.

Correggere il bug presente e rimanere con la 3.9

Un thread nel forum di supporto del plugin suggerisce una via alternativa per risolvere il problema generato dal nuovo BackupWordPress: wordpress.org/support/topic/how-i-fixed-3-9-crash.

Puoi lanciare l’aggiornamento alla versione 3.9 (quindi il tuo WordPress diventerà momentaneamente non funzionante), nel frattempo scarica e scompatta il contenuto della versione 3.8 (downloads.wordpress.org/plugin/backupwordpress.3.8.zip), quindi carica via FTP le cartelle backdrop e whitelist-html sovrascrivendo quelle presenti. Al contrario delle vecchie, le nuove cartelle sembrano infatti non contenere i file necessari per il funzionamento del plugin. Sovrascrivendole farai nuovamente funzionare BackupWordPress ottenendo un “ibrido” tra le versioni 3.8 e 3.9.

Sembra proprio che qualcuno abbia avuto un pelo troppa fretta nel preparare la nuova versione del plugin, il tutto senza accorgersi di nulla e senza dare il giusto peso alle numerose segnalazioni di malfunzionamento già pervenute tra GitHub e forum di supporto WordPress. A questo punto non resta che attendere il rilascio della nuova versione del plugin che correggerà questa anomalia.

12/6/19

Tutto come previsto: è stata da poco rilasciata la versione 3.10 che corregge il bug letale della sfortunata e ben poco duratura 3.9 ?
Puoi tornare ora ad aggiornare il plugin senza strani (ma perfettamente funzionanti) work-around.

BackUpWordPress
BackUpWordPress
Developer: XIBO Ltd
Price: Free
× Le pillole del Dr.Mario

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"!
Condividi l'articolo con i tuoi contatti:

Tutto parte da una segnalazione di bug arrivata tramite il mio bug bounty program (openbugbounty.org/reports/809068) e, seppur protetto da alcuni metodi di cui ti ho già parlato in passato, effettivamente il file XML-RPC di WordPress risultava raggiungibile dall’esterno, mostrando potenzialmente il fianco a un qualche attacco poco gradito. Per questo motivo ho voluto aggiungere un ulteriore strato di sicurezza che gli permette di continuare a rimanere disponibile per Jetpack e nulla più. Per farlo mi è bastato mettere mano al file .htaccess del dominio.

WordPress: 5 step per la sua (e tua) sicurezza

La documentazione a cui fare riferimento è quella ufficiale di Jetpack, disponibile all’indirizzo jetpack.com/support/hosting-faq. Nello specifico ciò che a te interessa è quel paragrafo relativo a “Whitelist all communications between WordPress.com and Jetpack“, utile per permettere al tuo sito e al servizio messo a disposizione da WordPress.com di parlare senza incontrare ostacoli, lasciando fuori tutto il resto.

Al solito, prima di cominciare, il consiglio resta sempre lo stesso:

ATTENZIONE: Prima di eseguire qualsiasi modifica ai tuoi file e/o dispositivi sei pregato/a di effettuare un backup di questi (o lavorare in ambiente di test e mai di produzione). Solo così sarai capace di tornare indietro ponendo rimedio a eventuali errori di distrazione.

Una questione di .htaccess

Pronto? Cominciamo. Il trucco è semplice e sta tutto nel file che può limitare l’accesso alle risorse contenute nel tuo sito web. Apri il file .htaccess con un editor di testo degno (Notepad++ o Atom), non toccare nulla che sia stato messo lì dal tuo WordPress o da qualsiasi altro plugin da te utilizzato (penso a iThemes Security o W3 Total Cache e simili), trova uno spazio nuovo da occupare con una porzione di codice che dovrebbe essere quanto più simile a questa proposta di seguito:

<Files xmlrpc.php>
    Order Allow,deny
    Allow from 122.248.245.244
    Allow from 54.217.201.243
    Allow from 54.232.116.4
    Allow from 192.0.64.1/192.0.127.254
    Allow from 192.0.80.0/20
    Allow from 192.0.96.0/20
    Allow from 192.0.112.0/20
    Allow from 195.234.108.0/22
    Deny from all
    Satisfy All
    ErrorDocument 403 https://gioxx.org/403.shtml
</Files>

Io ho inserito il codice subito prima del termine del “paragrafo” modificato da WordPress (per capirci, prima di “# END WordPress“). Una volta terminato il tuo lavoro, salva la modifica e sovrascrivi il file presente sul tuo spazio FTP. Ciò che hai appena fatto consiste nel bloccare ogni possibile comunicazione con il file xmlrpc.php a esclusione degli IP appartenenti a WordPress.com, come una sorta di Firewall che taglia fuori tutti tranne loro. Chiunque proverà a puntare a quel file php sul tuo spazio hosting, si troverà davanti a una pagina di errore (nel mio caso https://gioxx.org/403.shtml, nel tuo ti consiglio di modificarla con qualsiasi altro tipo di indirizzo).

La modifica è immediata e dovrebbe portare beneficio alla tua installazione WordPress – in termini di sicurezza, nda – che non risentirà così alcun problema nell’utilizzo del sempre troppo mastodontico JetPack, in attesa che quest’ultimo si decida a utilizzare un diverso metodo per comunicare con le installazioni del CMS in giro per il mondo.

Al solito: per qualsiasi ulteriore dubbio o informazione l’area commenti è a tua totale disposizione (anche per suggerire metodi alternativi a quello proposto poco sopra).


fonti:
namehero.com/startup/how-to-safely-disable-xmlrpc-in-wordpress-while-keeping-jetpack
jetpack.com/support/hosting-faq
Condividi l'articolo con i tuoi contatti:

In seguito all’aggiornamento del pacchetto PHP 7 su Synology, mi sono accorto che il bot di Telegram non mi informava più riguardo il cambiamento di stato dell’Home Mode di casa. Ho dato un’occhiata al problema e scoperto che i moduli .so non erano più al loro posto. Ho quindi rimesso in ordine e tutto è tornato a funzionare come riportato nel mio vecchio articolo, questo di seguito:

Synology Surveillance Station: Home Mode automatico tramite WiFi

Per questo motivo ho deciso di scrivere qualche riga di codice che rendesse l’operazione più semplice nel caso in cui mi ricapiti lo stesso scenario. Ho poi condiviso con tutti lo script, caricandolo nel mio spazio GitHub all’interno del progetto (github.com/gioxx/AVM-FRITZ-Box-Synology-Surveillance-Home-Mode-Automation). Lo script si chiama molto banalmente php7ModEnabler.sh e ti posso rapidamente dire che:

  • Verifica l’esistenza del pacchetto PHP 7 sul NAS Synology, quindi:
    • Se non esiste il file /usr/local/lib/php70/modules/openssl.so lo recupera dal pacchetto PHP 7 (/volume1/@appstore/PHP7.0/usr/local/lib/php70/modules).
    • Fa la stessa cosa con /usr/local/lib/php70/modules/curl.so e /usr/local/lib/php70/modules/soap.so (che utilizzo anche per altro, e male non fa).
    • Modifica il php.ini di PHP 7 (/usr/local/etc/php70/php.ini) e “inietta” l’uso dei 3 moduli se questo non è stato precedentemente fatto (baso il mio controllo sull’esistenza della riga extension=openssl.so generalmente sotto extension_dir = "/usr/local/lib/php70/modules".
    • Riavvio PHP 7 (synoservicecfg -restart pkgctl-PHP7.0) per poter caricare correttamente il file php.ini modificato.

Ti basterà copiare lo script all’interno della tua home sul NAS, quindi renderlo eseguibile (chmod +x php7ModEnabler.sh) e lanciarlo con privilegi elevati (sudo ./php7ModEnabler.sh).

È una logica molto banale ma funzionante e utile per accelerare i tempi di configurazione del PHP 7 e relativi moduli su Synology. Ho modificato l’articolo originale per poter includere anche questa nuova possibilità. Ringrazio tutte le fonti utilizzate (quindi i relativi utenti che hanno fornito l’aiuto), tutte riportate all’interno dello script bash. Sentiti libero di suggerire delle alternative nei commenti o – se preferisci – di forkare direttamente il mio codice GitHub e proporre così possibili miglioramenti, correzioni o ulteriori controlli.

Buon lavoro.

Condividi l'articolo con i tuoi contatti:

2009 e 2011, questi gli anni in cui ti ho parlato del Random Password Generator, un piccolo strumento web che permette di ottenere una password alfanumerica da 9 caratteri (senza segni di punteggiatura) e che in questi anni ha continuato a svolgere il suo lavoro per chiunque ne avesse la necessità, lì in attesa al solito posto, con quel pelo di manutenzione e nulla più. Ora però è arrivato il momento di dare una svecchiata a lui e al fratello minore “Random PIN Generator“, nato in seguito per differente esigenza.

Firefox Monitor ti avvisa in caso di furto credenziali

Un template più pulito e chiaro, lo stretto indispensabile per ciò che riguarda le informazioni, la funzione principale in bella vista. Il campo Password o PIN è seguito (subito sotto) da due pulsanti che ti permettono rispettivamente di copiare il codice negli appunti o generarne uno nuovo, così da renderti la vita decisamente più semplice.

L’ultimo restyling è di dicembre dello scorso anno, lo annuncio oggi (non che se ne sentisse il bisogno) così che tu possa approfittarne per darci un’occhiata e salvare nei tuoi preferiti i due indirizzi rapidi che possono tornarti utili: go.gioxx.org/password e go.gioxx.org/pin :-)

Buon fine settimana!

Condividi l'articolo con i tuoi contatti: