Ho creato anche io un portale da 0.

Il problema della sicurezza l'ho risolto seguendo diversi accorgimenti e copiandio il metodo di autenticazione di joomla.

Per quanto riguarda i file ho sperimentato diverse soluzioni, alla fine ho ritenuto che la soluzione più sicura era quella che prevedeva la memoriazzzione dei file all'interno del database.

Qua puoi trovare l'articolo che spiega come fare.
http://www.html.it/articoli/files-dentro-a-mysql-1/

Spero di esserti stato utili.
Saluti