The application provides basic file backup and encryption service. Basic user authentication is provided. Currently, the application supports encrypted file uploads, listing the uploaded files, deleting and downloading the decrypted files.
- PHP 7.4
- Nginx 1.4.6
- MySql 5.1
- Laravel 8.16.1
- Arch Linux
- app/Controllers/LoginController.php - handles user authentication and new account creation.
- app/Models/User.php - Provides the model for LoginController.
- app/Requests/UserLogin.php - Provides the required validation and sanitizations for methods declared in LoginController.php
- app/Controllers/FileController.php - handles File operaions such as upload, encrypt, download etc.
- app/Models/FileUploads.php - Provides the model for FileController.
- app/Requests/FileUpload.php - Provides the required validation and sanitizations for methods declared in FileController.php
- All the views for the application can be found resources folder.
- All the database schema can be found in database/migrations.
- Laravel framework support for CSRF prevention is used.
- Proper sanitization, validation and output encoding are used to prevent SQL injection and XSS.
- AES-256-CBC is currently used for encryption. Some authenticated encryption algorithms like AES-256-GCM will be used in the future (further investigation needed).
- User management activities such as change email, forget password and OAuth support etc.
- Online File view/modification.
- User and File access rights.
- Efficient way to upload and encrypt larger files.