Finalmente è giunto il momento di presentarvi la beta due del mio cloud a distanza di circa 2 mesi dal rilascio della beta 1 del progetto SharekFile. Versione in cui erano state rilasciate davvero tantissime novità, incentrate soprattutto sulla gestione dei dati della piattaforma. Vi consiglio di leggere l’articolo che vi ho appena postato, se ovviamente non l’avete ancora fatto, per avere un’idea chiara sul percorso cronologico di sviluppo.
In questa nuova versione sono stati apportati davvero tantissimi cambiamenti. Vista la quantità di novità e di piccole e grandi migliorie, in questa documentazione vi renderò partecipi delle più importanti. Soprattutto per non rendere questo articolo noioso e di difficile lettura.
Come facciamo ogni volta, partiamo dai cambiamenti under the hood, ovvero sotto il cofano.
Cambiamenti tecnici
Modifica al file config.php
Una delle prime modifiche importanti apportate riguarda il file config.php, ovvero il file di configurazione principale di SharekFile. In questa nuova versione è stato aggiunto al file di configurazione tutti i dati di gestione principale del server di accesso SFTP, che gestisce ovviamente gli account FTP. I dati inseriti sono gestiti da delle costanti, ovvero valori che non possono essere modificati o compromessi in alcun modo, se non con un’intervento manuale sul sorgente da parte dell’amministratore.
I dati inseriti sono i seguenti:
- Username principale del server SFTP
- Host di collegamento
- Porta
- Tipo di protocollo utilizzato
Questi dati sono disponibili per tutti gli script di gestione degli account FTP, questione che tratteremo in seguito, sempre all’interno di questa documentazione
Modifica effettuata al file user.ini
È stata effettuata una serie di piccole modifiche al file user.ini, ovvero il file di controllo delle impostazioni del php engine. Più precisamente, le modifiche apportate servono per i seguenti scopi:
- Migliorare la gestione della ram per script
- Migliorare la gestione dei file in upload
- Migliorare la gestione degli accessi al server, anche quelli FTP
Modifica al file .htaccess
È stato risolto un piccolo bug di gestione delle risorse del server. Per risolvere questo bug è stato necessario intervenire sul file .htaccess
Rifatti da 0 i file 404.php e 403.php
Sono stati svolti dei radicali cambiamenti ai file 403.php e 404.php, file che gestivano gli errori riguardanti:
- Problemi di permessi
- Problemi di file non trovati
Queste modifiche sono state apportate per:
- Risolvere tutta una serie di problemi tecnici dovuti al funzionamento di questi file
- Riscrivere la parte grafica di questi file, che era ormai obsoleta
- Migliorare la sicurezza, con una gestione degli indirizzi collegata direttamente al file config.php
Rifatto da zero il sistema di gestione dei file del framework bootstrap
Da questa versione, i file del framework bootstrap vengono richiamati per i vari script della piattaforma, tramite un sistema centralizzato. Tutto questo permette di limitare problemi tecnici e problemi di sicurezza al minimo. Inoltre garantisce un’ottima possibilità di aggiornamento futuro della versione del framework.
Sicurezza della piattaforma
Andiamo ora a elencare tutti i cambiamenti effettuati per migliorare la sicurezza della piattaforma
Registrazione
Sono stati aggiunti 50 nuovi controlli di sicurezza per le registrazioni utenti. Questi controlli sono stati applicati per:
- Migliorare la sicurezza delle password inserite dagli utenti
- Aggiungere nuovi parametri obbligatori per l’inserimento delle password. Ora le password devono avere queste caratteristiche, per essere accettate:
- Una password deve avere almeno 8 caratteri
- Deve contenere almeno un carattere maiuscolo
- Deve contenere almeno un carattere minuscolo
- Deve contenere almeno un numero
- Non deve contenere il proprio nome
- Non deve contenere il proprio cognome
- Non deve contenere il proprio username
- Non deve contenere il proprio indirizzo email
- Sono stati inseriti nuovi controlli di sicurezza che impediscono di alterare il sistema durante la creazione delle directory utenti
- Migliorato il sistema di conferma email, con una chiave di sicurezza molto più complessa da decifrare
Login
Aggiunti 30 nuovi controlli di sicurezza per la gestione del login. Questi controlli inoltre hanno permesso di:
- Semplificare il processo di accesso
- Aggiungere nuovi avvisi, che informano l’utente di svariati problemi
- Risolvere qualche bug tecnico
- Velocizzare il processo di login, riducendo il peso delle query al database
Questi sono i nuovi avvisi introdotti:
Avviso di username non trovato
Password associata al nome utente errata
Come potrete notare la grafica è stata completamente cambiata. Ma questo lo approfondiremo tra poco
Gestione FTP
Per quanto riguarda la gestione degli account FTP è stata migliorata di molto la sicurezza. Questi sono i cambiamenti apportati:
- Sono stati risolti più di 100 bug di sicurezza nella gestione degli account FTP
- È stata totalmente riscritto l’intero sistema di approvazione degli account FTP e dell’invio dei dati all’utente
- Aggiunti alcuni strumenti di amministrazione degli accessi FTP per l’admin della piattaforma
Questo è il nuovo form di attivazione/disattivazione account FTP disponibile per l’admin
Questo nuovo sistema di controllo permette di evitare di attivare l’account FTP in modo totalmente manuale, intervenendo manualmente sul database.
Questo nuovo sistema, richiede comunque un’approvazione dell’attivazione dal pannello di controllo del server principale. Controllo indispensabile per evitare qualsiasi problema di sicurezza
Questa nuova gestione degli account FTP è stata resa possibile grazie alla modifica del file config.php, che abbiamo visto in precedenza.
Novità funzionali della beta 2
Dopo aver visto i principali cambiamenti di questa versione, che riguardano tutti gli aspetti di sicurezza coinvolti, vediamo nuove funzionalità e caratteristiche di questo cloud
Gestione dello spazio
Finalmente è stato introdotto un sistema per la gestione dello spazio utente. Da questo momento, gli utenti non hanno più l’account con lo spazio illimitato, ma hanno un limite pari a 20 GB per l’account gratuito.
Saranno disponibili, a breve, diversi pacchetti per incrementare lo spazio disponibili. I pacchetti che verranno rilasciati sono i seguenti:
- Il primo, gratuito e a vita, prevede 20 GB di spazio libero
- Il secondo, a rinnovo annuale e a un costo di 20 euro ad ogni rinnovo, prevederà 300 GB
- Il terzo, a rinnovo annuale e a un costo di 40 euro ad ogni rinnovo, prevederà 700 GB
Verranno rilasciati ulteriori pacchetti e ulteriori fasce di prezzi.
Ho implementato anche una chiave di sblocco, che permette all’amministratore di assegnare, a sua scelta, agli account che desidera, lo spazio illimitato.
Ovviamente l’account di amministratore non ha limiti di spazio o di funzioni
Nel caso un’utente dovesse finire lo spazio a sua disposizione, succederanno queste cose:
- Verrà impedito l’upload di ulteriori file. Il form di upload sarà infatti bloccato.
- Verrà disabilitato l’accesso FTP per non far caricare nuovi file
- Verrà bloccata la possibilità di creare nuove directory
Lo spazio disponibile è visualizzabile nella home page di ogni utente. La quantità di spazio residuo viene segnalata in MB
Ho provveduto a creare un’utente fittizio per fare questo screen. L’utente ovviamente ha un nome totalmente casuale, inventato con la mia poca fantasia.
Intanto che ci siamo, dalla home page, è possibile cliccare sul link riguardante l’accesso FTP, e visualizzare, nel caso in cui l’account sia stato abilitato, tutte le informazioni ad esso associate
Sempre per quanto riguarda la gestione dello spazio e dei file caricati dall’utente sono state implementate alcune novità
- Sono stati implementati nuovi controlli sui file caricati dall’utente via browser. Elementi che potrebbero essere dannosi per il server verranno segnalati. Una volta segnalati, l’amministratore avrà modo di controllare questi ultimi. Se il file risulta dannoso, verrà eliminato.
- Se durante il caricamento dei file via FTP, viene caricato un virus o altre minacce, il server sarà in grado di rimuovere questi ultimi. Inoltre, in modo totalmente automatico, dopo un certo numero di violazioni di sicurezza dovuti ad upload di file non idonei, all’utente verrà negato l’accesso FTP
- Ogni volta che un’utente carica un file dannoso, gli viene inviata una mail di segnalazione al suo indirizzo email collegato all’account.
- Sono stati implementati dei trigger (comandi) che vengono eseguiti talvolta si tenta di accedere a sezioni del cloud di elaborazione (quindi sezioni che non dovrebbero essere toccate dagli utenti). Ogni volta che viene rilevata una violazione della sicurezza, la piattaforma prenderà automaticamente l’IP della persona e lo salverà per poterlo identificare in un secondo momento.
- Sempre parlando di trigger, sono stati abilitati nuovi controlli, e nuove piccole funzioni, che fanno in modo di bloccare un IP all’accesso del cloud dopo un numero ben definito di violazioni di sicurezza. Il blocco sarà totale, ovvero che la persona non potrà accedere al cloud, fino a riabilitazione manuale da parte dell’amministratore
Gestione dei dati di accesso
Tutti i dati di accesso dell’utente che verranno usati durante la sua sessione di login, verranno gestiti da dei cookie. La differenza tra le versioni precedenti e questa del cloud, è che ora tutti questi dati vengono gestiti con delle costanti, per evitare che possano essere modificati da hacker.
Cambiamenti grafici
Dopo aver esposto a lungo di svariate novità tecniche, passiamo alla grafica.
La grafica in questa versione è stata completamente rivista.
Vediamo ora che cosa è cambiato
Nuovo sistema grid
Bootstrap, il framework grafico usato per sviluppare l’interfaccia utente, fornisce diversi sistemi a griglie. In questa nuova versione è stato applicato tutto un nuovo sistema a griglia, per rendere l’interfaccia grafica molto più responsive. Ora la visualizzazione su smartphone e tablet è nettamente migliorata.
Nuova Home Page
Finalmente è stata riscritta la home page del cloud. Ecco a voi uno screen
Nuovi form di login e di registrazione
Login
Registrazione
Nuovo form di recupero password
Intanto che ci sono elenco alcuni cambiamenti effettuati nella procedura del recupero password
- Risolto un bug che, in caso di un errore dell’utente nell’inserimento della nuova password, bloccava il processo di recupero
- La chiave di conferma della mail, per il recupero della password dell’account, è molto più sicura
- Migliorati tutti gli avvisi di errore e di conferma di effettivo cambio password dell’account
File Manager
Il file manager e tutte le funzioni ad esso associate è stato completamente rivisto graficamente. Ecco qualche screen
Colgo l’occasione per ringraziare Nicolò Altamura, che mi ha aiutato a sistemare tutte le nuove icone nel menu in alto del file manager.
Ecco qualche novità grafica
- I menu di tutta la piattaforma e quindi anche del file manager, sono gestiti da una nuova classe bootstrap, chiamata container-fluid
- Ogni voce dei menu ha una sua icona rappresentativa, che migliora molto l’aspetto grafico
- I messaggi di avvisi, di errore e di conferma hanno ora dei colori ben definiti:
- Arancione -> Messaggi di errore
- Azzurro -> Messaggi di informazione
- Verde -> Messaggi di conferma
- Tutti i pulsanti della piattaforma sono di due colori: blu e bianchi
- I pulsanti blu corrispondono ai pulsanti di conferma -> questi sono gestiti dalla classe btn btn-primary di bootstrap
- I pulsanti bianchi corrispondono ad azione secondarie che può intraprendere l’utente -> questi sono gestiti dalla classe btn btn-default di bootstrap
- Lo sfondo della piattaforma ora è uno solo: non ci sono più sfondi differenti per ogni sezione
- Il layout delle pagine è gestito dalla classe container di bootstrap, in modo dinamico e quindi responsive, grazie al nuovo sistema grid spiegato in precedenza
- Le prestazioni di caricamento delle pagine sono state nettamente migliorate. Ogni pagina pesa circa 100 kb in meno rispetto alla versione precedente del cloud
Al file manager sono stati applicati dei cambiamenti strutturali:
- Risolti più di 200 bug che riguardavano la gestione delle directory
- Nuova gestione del recupero dei dati delle directory
- Sistema di criptazione/decriptazione dati più efficiente e sicuro
Gestione cartelle
Grazie alla gestione delle directory tramite i file option.php, descritti anche nella versione precedente, è possibile gestire facilmente le directory all’interno del file manager.
È stata cambiata tutta l’interfaccia grafica della gestione delle cartelle. Ora è molto più intuitiva e comprensibile
Cliccando sul nome della directory, è possibile visualizzare tutte le informazioni di quest’ultima. Questa novità è stata introdotta nella beta 1, ma totalmente modificata, graficamente parlando, per renderla molto più comprensibile
Nuova interfaccia di upload file e di creazione directory
Upload File
Condivisione file e riproduzione multimediale
Riproduzione video
L’interfaccia di riproduzione audio è uguale a quella video
Condivisione multimediale e condivisione dei file
Qui sono state apportate diverse novità:
- Risolti più di 500 bug riguardanti la condivisione video, audio e dei file
- Migliorata la possibilità di creazione di pagine personalizzate da 0
- Rifatto da zero il layout delle pagine preimpostate di condivisione dei file, dei video e dei file audio
- Scritto parte dell’algoritmo di condivisione, rendendo più facile la gestione dei link condivisibili
- Aggiunte nuove funzioni per l’eliminazione delle pagine di condivisione, molto più intuitive di quelle scritte in precedenza
Form di condivisione file
Eliminazione semplificata di file di condivisione, grazie a sezioni secondarie del file manager
Impostazioni
Viste tutte le novità riguardanti la grafica e il file manager, diamo un’occhiata alle impostazioni
Questa è la schermata delle impostazioni principale
Tutti i form delle impostazioni sono nello stesso stile grafico di quelli del file manager.
Vediamo i cambiamenti più importanti che sono stati apportati:
- Query al db per la richiesta dei dati, gestita con delle funzioni centralizzate. Ogni script richiama determinate funzioni per richiedere i dati
- Risolti molti bug sul cambio user name
- Implementato un sistema di richiesta di accesso automatica per il cambio del nome utente e della password dell’account
- Riscritte da zero molte email di comunicazione
- Gestione degli indirizzi email più sicuro
Conclusioni
Queste erano le novità più importanti di questa nuova versione del cloud. Sono davvero tante e sinceramente vi ho citato solo le più importanti. Grazie a questo lavoro, posso dire che ora la piattaforma ha una grafica e un sistema funzionale ben definito, realizzato in un anno di sviluppo. Un anno impegnativo, ma che ha portato a tutto questo.
Voglio ringraziare:
Nicolò Altamura -> per la sua collaborazione nei menu
Massimo Rossolillo -> Per il supporto e per alcuni ottimi consigli che mi ha dato
Claudio Majorino -> Per i consigli che mi ha fornito e per il video che ha fatto sul mio progetto
E tutti gli utenti che mi hanno aiutato a risolvere alcuni problemi
Per finire
Vi lascio il link per accedere al mio cloud, che è cambiato. Ora il nuovo indirizzo è: https://sharekfile.com/
Con questo io vi saluto e ci ritroviamo al mio prossimo articolo!