In questi mesi lo sviluppo di SharekFile è continuato incessantemente. Grazie a questo, oggi posso essere qui a presentarvi la prima versione beta del mio cloud.
In quest’ultima versione sono cambiati veramente tantissimi aspetti di questa piattaforma. Oggi sono qui per illustrarti tutti i cambiamenti avvenuti.
Cambiamenti tecnici
Direi di partire con i cambiamenti meno interessanti, ma importantissimi per quanto riguarda la sicurezza degli utenti e la sicurezza dei file caricati sulla piattaforma.
Innanzi tutto sono state apportate 4 modifiche al file config.php. Questo è l’elenco di tutte le modifiche apportate:
- Implementato l’utilizzo di una costante per la memorizzazione e la gestione della directory principale del cloud
- Implementato l’utilizzo di una costante per la memorizzazione e la gestione del dominio principale del cloud
- Rimosse le variabili per la gestione della directory principale e del dominio
- Implementato un ulteriore blocco di sicurezza per il file config.php stesso, per evitare che possa essere letto o scaricato, in un qualche modo da utenti non autorizzati
Queste modifiche al file di configurazione generale di SharekFile hanno portato la necessità di modificare parte della piattaforma, per favorire in modo corretto le nuove modalità di utilizzo delle directory e delle url.
Sono state effettuate diverse modifiche al file .htaccess
Il file .htaccess è il file di configurazione principale del server apache. Al suo interno vengono impostate tutte le impostazioni che si vogliono variare all’interno del server.
Ecco un elenco di tutte le modifiche apportate:
- Sono stati rimossi tutti i parametri php_value, che servivano per modificare le impostazioni del php engine, quindi del php.ini
- Sono stati corretti alcuni bug nei parametri error_document, che consentono di far visualizzare all’utente pagine di errore personalizzate, per l’eventuale presenza dell’errore 404 e 403
Dato che sono stati rimossi tutti i parametri php_value, è stato aggiunto il file user.ini, che permette di modificare tutti i parametri utente del php engine.
Ecco alcuni dei parametri implementati:
- memory_limit -> questo valore è stato portato a 512, per allocare 512 mega di ram per ogni script del cloud
- upload_max_filesize -> questo valore è stato portato a 1.9G, per permettere l’upload di un file fino a 1.6G senza problemi (ovviamente dal browser; da ftp non ci sono vincoli)
- post_max_filesize -> questo valore è stato portato a 1.9G, per permettere il trasferimento, con metodo post, fino a 1.9G di dati per ogni trasmissione
Sono stati implementati nuovi controlli di sicurezza per la registrazione degli account utenti
Queste sono le modifiche che sono state apportate:
- Aggiunto un nuovo tipo di controllo per l’username e l’email. Questo è un controllo intelligente, dato che controlla in modo combinato il nome, il cognome della persona con i dati di accesso (email, username e password), per riuscire a comprendere con più precisione, precisamente con una precisione del 40% in più, se l’account che è stato appena registrato è falso o autentico.
- E’ stato implementato un nuovo sistema di controllo molto più completo per la verifica della cartella utente. Questo controllo riduce di molto la possibilità di errori tecnici, durante la creazione della cartella utente e della registrazione dei dati all’interno del database.
Sempre parlando di registrazione degli utenti, sono state implementate nuove funzioni degli account.
Queste sono le modifiche apportate
- Aggiunti i file option.php, spiegati nella versione precedente, per ogni directory contenuta nello spazio utente
- Migliorate le query al database per il salvataggio dei dati delle directory
- Per quanto riguarda il processo di registrazione, è stato aggiunto il controllo dell’indirizzo email. Ora viene controllato se l’indirizzo email immesso durante il processo di registrazione sia associato ad un’altro account.
Centralizzazione delle funzioni
Nelle versioni precedenti di SharekFile ogni script era indipendente. Ora invece, molti elementi di grafica, come i menu, vengono gestiti in un’unico file contenente tutta una serie di funzioni che vengono richiamate all’interno degli script che le richiedono.
E’ stata aggiornata tutta la questione delle query al database. Ora tutte queste richieste al db vengono fatte in modo centralizzato.
Anche la gestione degli accessi è stata centralizzata. Ora il controllo dell’accesso utente viene svolto in maniera centrale e quindi ogni script non sarà più indipendente sotto questo punto di vista. Tutto questo migliora, e non poco, la possibilità di aggiornamento di questa piattaforma. Infatti sarà più semplice aggiungere funzioni o risolvere bug in questo modo, dato che è da modificare una sola funzione e non tante tutte uguali contenute in differenti script.
Modifica della gestione dei dati di accesso
Da questo aggiornamento, tutti i dati di accesso, eccetto l’username, vengono gestiti con delle costanti. Questo è stato reso possibile grazie anche alle modifiche implementate nel file config.php, spiegate in precedenza.
Utilizzo dei dati di comunicazione (nome dominio, directory principale e metodi di connessione al database)
Da questo aggiornamento, tutti i dati di comunicazione appena citati saranno forniti direttamente dal file config.php. La maggior parte di questi saranno salvati in costanti, in modo tale da non poter essere modificati da nessuno.
Questi erano tutti i dati tecnici principali da vedere. Ora andiamo a vedere tutte le grandi modifiche apportate alla piattaforma.
File Manager
Il file manager è stato sostituito completamente. Da questo momento non solo è cambiata la grafica in meglio, ma funzionalmente è migliorato.
Oltre alla grafica nettamente migliorata di questo nuovo file manager, troviamo elementi come la ricerca rapida dei file e delle cartelle e inoltre la possibilità di comunicare con metodo GET con il file manager stesso. Con questo ultimo dettaglio, tutte le funzionalità di SharekFile nate per permettere all’utente di creare cartelle, caricare file o eliminare elementi saranno in grado di comunicare con il file manager stesso, permettendo, ad esempio, che una volta creata una cartella, di entrare direttamente nella cartella per iniziare a caricare immediatamente file.
Vediamo insieme un esempio per comprendere meglio
Creiamo una cartella di nome Prova nella directory principale
Confermando il procedimento, SharekFile ci rimanda direttamente all’interno della cartella appena creata
Questa funzionalità è presente, oltre per la creazione di nuove directory, anche per l’upload dei file e per l’eliminazione di directory e file
Come possiamo aver notato, la grafica del form da compilare per creare una directory è molto più pulito. Questo è stato reso possibile grazie all’utilizzo della classe jumbotron di bootstrap, che consente di realizzare la header di ogni pagina pulita e con i giusti spazi necessari.
Questa modifica grafica è stata apportata in tutte le funzioni del file manager.
Modificate le funzioni relative all’option.php
Innanzi tutto, prima di mostrarvi i cambiamenti, volevo sottolineare che il file option.php abilita un trigger nella piattaforma. Non contiene al suo interno funzioni o parametri importanti. Quindi la piattaforma non è vulnerabile sotto questo punto di vista.
Dalla versione precedente è stata modificata l’interfaccia grafica di base.
Cliccando sul pulsante bianco con il nome della directory che si è aperta, possiamo visualizzare alcune informazioni importanti
Sono state effettuate diverse modifiche alle funzioni per la gestione delle directory
- Sono state unite le funzioni presenti nel menu, con quelle presenti nella schermata data dal file option.php
- Sono state rimosse due funzioni: la funzione di rimozione file e la funzione di creazione di una nuova cartella. In poche parole erano presenti due funzioni che facevano la stessa cosa. Ora ne è presente solo una per tipo
- E’ stata modificata la funzione di creazione directory, upload file e rimozione directory in modo tale che rispondano in modo diverso, a seconda se vengono richiamate dal menu principale del file manager o dalla schermata del file option.php
L’ultimo punto che abbiamo annunciato, permette di evitare all’utente di inserire la posizione del file o della cartella da creare o da eliminare, quando queste stesse funzioni vengono richiamate dalla finestra del file option.php. Questo permette di semplificare, e non di poco, la vita all’utente.
Ecco un’esempio:
Funzione di upload richiamata dal menu principale
Questa invece è la funzione di upload, che è la stessa del menu principale, richiamata dalla finestra di una directory (cliccando sul file option.php)
Apriamo una piccola parentesi sull’upload dei file via browser
Sono state apportate diverse modifiche, che saranno molto interessanti per tutte le persone, che come me, godono di una connessione lentissima
- E’ stato aumentato il buffer di upload, in modo tale da non far bloccare il caricamento del file anche durante cali di segnale
- Sono stati ridotti i blocchi di connessione con il server dovuti dalla lentezza della connessione internet
Consiglio, però, di caricare file molto grossi via ftp, per non riscontrare problemi.
Gestione file
Per quanto riguarda la gestione dei file, sono state apportate numerose modifiche nell’interfaccia di gestione dei file.
Innanzi tutto, come potrete vedere, sono stati rimossi i radio buttons e inserito un menu a tendina con tutte le azioni disponibili
E’ stata anche aggiunta una query che richiede al db il nome del file con cui si sta interagendo.
All’interno di questa finestra è disponibile anche la funzione di condivisione, che permette di condividere i file con altri utenti, creando una pagina di download.
Questa funzione è stata ottimizzata molto. E’ stata aggiunta anche una piccola finestra in javascript che permette di copiare il link del file condiviso in modo facile e veloce.
All’interno di SharekFile erano presenti due funzioni di condivisione. Una contenuta all’interno del menu principale e una era disponibile nella finestra di interazione file. E’ stata rimossa la funzione nel menu principale, ormai ritenuta obsoleta.
Parlando sempre della finestra di gestione dei file, è stata modificata la funzione che segnala il fatto che non è stata selezionata alcuna voce. In questa funzione è stato implementato il css di bootstrap bootstrap-theme.min.css
E’ stata migliorata meglio la funzione di download dei file. Ora questa funzione riconosce quasi 50 tipi di file differenti e ovviamente, a seconda del file rilevato, cambia il testo e l’azione stessa della funzione.
Condivisione file
Abbiamo accennato prima alla condivisione dei file e della funzione dedicata per questo scopo. Questa funzione non è presente in ogni script di download. Infatti ora è stata centralizzata, per rendere più semplici anche le azioni di aggiornamento.
Impostazioni account
Per quanto riguarda le impostazioni dell’account, sono state riscritte quasi da 0, stabilizzandole e aggiungendo svariati controlli per verificare che ogni modifica apportata alle impostazioni sia avvenuta con successo, senza problemi tecnici.
Per quanto riguarda la grafica, sono stati sostituiti i vecchi link e i vecchi pulsanti con i nuovi pulsanti di bootstrap.
Queste erano in linea generale tutte le novità introdotte in questa nuova versione. In realtà ce ne sono molte altre, ma sono di minore importanza, e lascerò a voi il piacere di scoprirle.
Con questo io vi saluto e vi aspetto al mio prossimo articolo!