Ciao !!! I Syahrulloh, in questo blog ho discuterà su VPS server e Linux.

La messa in sicurezza del database di Wordpress



WordPress nasce come piattaforma di blogging multi-utente, ed é possibile filtrare gli articoli scritti da un determinato autore costruendo l’URL nella barra degli indirizzi, oltre ad utilizzare le sue funzioni native (un click sul nome dell’autore dell’articolo).

Ti ho detto già che un sito wordpress base, se chiamato all’indirizzo
http://nomesito/?author=1 restituisce tutti gli articoli scritti dall’utente con id=1.
In una nuova installazione di default Wordpress ha una pagina ed un articolo per dimostrazione.

Clicchiamo sull’articolo e vediamo che compare in bellavista l’autore baelfire (nel caso dei nostri esempi, o l'utente che hai scelto in fase di installazione), orgoglioso di trovarsi giá con un articolo pubblicato (baelfire non crede che The content is the king....)

Clicchiamo sul nome dell’autore ed accediamo quindi alla pagina che contiene tutti gli articoli scritti da baelfire. Se guardi bene nella barra degli indirizzi ora siamo su

http://localhost/blog/author/baelfire/

Per verificare se baelfire è l’utente amministratore inseriamo questa query sostituendo il nome dell'autore con il numero 1

http://localhost/blog/?author=1

La pagina è la stessa, la frittata sarebbe fatta. In questo modo, e senza tanto sforzo, abbiamo la username dell’amministratore.





È ora di mettere mano al database. La modalitá è sempre la stessa, da shell accedendo a MySQL per la macchina virtuale/VPS o da PhpMyAdmin per chi lo fa su hosting.

Una volta effettuato l’accesso, selezioniamo il nostro database, qualora ne avessimo piú di uno ed inseriamo alla voce SQL il comando che ci permetterá di apportare le modifiche.
Assicuriamoci di selezionare il database giusto ed iniziamo.
Se non hai cambiato il prefisso della tabella di WordPress dei tutorial é possibile copiare ed incollare i seguenti comandi, altrimenti cambia con il prefisso che gli hai scelto in fase di installazione.

Se il blog é giá avviato ed hai giá utenti/articoli prima di agire, effettua un bel backup, perché le voci da cambiare saranno molte e l’operazione andrá ripetuta per tutti gli utenti.

Ricorda, lasciati sempre una via di fuga, in questo caso l’eventuale rollback al vecchio database.
Ancora prima di inziare, se il tuo blog è giá avviato ed è multiutente, fai un’estrazione della tabella degli utenti per conoscere gli id attuali, ti servirá per procedere nella maniera corretta nell’update.

Dunque, modifichiamo l’id di baelfire

UPDATE mblg_users SET ID = 1050 WHERE ID = 1;

Il commando deve restituire il seguente messaggio:




Abbiamo modificato finalmente l’ID dell’utente amministratore, portando il valore da 1 a 1050 (sentiti libero di inserire un altro numero, l’importante è che te lo ricordi!)

Ora dobbiamo associare tutto quello che apparteneva all’utente con id 1 all’id 1050, altrimenti gli articoli, le pagine che appartenevano all’autore soggetto della modifica saranno orfani.

Il comando UPDATE indica a MySQL l’aggiornamento di una voce contenuta nel database effettuata dall’istruzione SET.
Ora procediamo ad allineare anche la tabella che contiene gli usermeta, tutte le informazioni che linkano al nostro utente, il suo nome, la sua mail, il nickname e cosi via. Abbiamo dato 1050 come ID, lo stesso dovremmo fare per gli usermeta tramite il comando

UPDATE mblg_usermeta SET user_id = 1050 WHERE user_id = 1

Le operazioni vano ripetute anche sugli utenti con ID valorizzato a 2,3, etc. se presenti.
E’possibile anche determinare da quale numero ID devono partire i prossimi utenti che verranno creati o che si registreranno al nostro sito/blog.
E’ importante soprattutto se pensiamo che il numero degli utenti totali sia maggiore dell’ID del nostro baelfire (abbiamo inserito 1050, potremmo pensare di partire da 1051 per evitare di generare conflitti).

ALTER TABLE mblg_users AUTO_INCREMENT = 1051;


Tramite PhpMyAdmin è possibile selezionare la tabella utenti per visualizzarne la struttura. Guarda in basso, la nostra modifica ha avuto pieno successo.




Ora ridiamo la paternitá a Baelfire dell’articolo di dimostrazione Ciao Mondo, che al momento attuale non risulta assegnato a nessun autore, e cosi anche la pagina di dimostrazione.
L’obiettivo è linkare nuovamente il proprietario ai rispettivi articoli, pagine e commenti se presenti.

Se sbagliamo qualcosa l’operazione non viene eseguita, quindi tranquillo.

UPDATE mblg_posts SET post_author = 1050 WHERE post_author = 1


Se necessario bisogna ripetere l’operazione per gli altri utenti.
Ci siamo, abbiamo fatto un bel lavoro e se sei una persona furba potresti fare il backup del database per le future installazioni, onde evitare di ripetere le stesse cose ogni volta.

Sempre per completezza di informazione, per chi usa la shell la sintassi deve essere

mysqldump -u [uname] -p[pass] [dbname] > [backupfile.sql]

quindi nel nostro caso

mysqldump –u myblogdbuser –pSekurity@2015 mioblog >daiunomealbackup.sql


Nella gestione di un VPS puoi fare riferimento a questo articolo che tratta il backup automatico di un database MySQL.

Da PhpMyAdmin, seleziona il database e spostati sul TAB Esporta







Sentiti libero di esplorare la modalitá avanzata, ti permetterà di personalizzare l’export come meglio credi, altrimenti procedi con il Rapido e salvati il database.

In futuro crea un database ed importa il file.

Sarai giá a buon punto. Ti basterá modificare le voci dell’hostname, che sará probabilmente diversa ad ogni installazione, a meno che il database non sia sempre sullo stesso server.

Sicuramente cambierá l’URL dove Wordpress verrá pubblicato.

Modifica l’utente baelfire con quello che preferisci.
La maggior parte degli scan effettua la query sull’author=1, ora la query produrrá un bel 404, e cosí via fino al 1050.




E’ un buon inizio, soprattutto contro chi effettua queste operazioni manualmente.
Vedremo in un altro post come con un Web Application Firewall sará possibile inibire la query sull’id dell’autore.

Ora che abbiamo moddato il nostro database, è giunta l’ora di far nascere il secondo utente, l’autore dei nostri articoli, che oltre a scrivere qualcosa di interessante non deve fare altro.

Sempre rimanendo in ambito Once Upon A Time, l’utenza da creare sará tremotino.
Il ruolo da assegnare è quello di autore, il nome da visualizzare (nicename) come autore Tremotino Gold, la password MichiamoTremotino&2015

Gli utenti li creiamo dall’interfaccia di amministrazione di Wordpress, nel tab Utenti, aggiungendone uno nuovo.

E’ importante tenere traccia dell’utenze presenti nel nostro blog, perché ne siamo responsabili.





Altrove parleremo dell’educazione che dovremmo dare ai nostri utenti mediante una password policy, per non permettere a nessuno di utilizzare password deboli all’interno di casa nostra.
Ora, in un mondo normale, l’utente tremotino avrebbe ricevuto una mail con le sue credenziali per accedere al nostro blog.

Apri un altro browser ed accedi come tremotino, gli strumenti messi a disposizione dell’utente sono limitati.




Ricorda, sempre due utenze, una in cassaforte per le operazioni di amministrazione ed una per pubblicare gli articoli.



arulajeh.id Situs Berita Terbaru Dan Terbaik