Personal Website
Features:
- PHP 7
- Composer
- MVC design pattern
- MySQL database for storing data
- CMS with CRUD functions for managing data
- ORM for mapping between PHP classes and data
- Login system
- Stay logged in using cookies
- Forget password with a generated link send using mail
- Security mitigations
- Password hashing using BCrypt
- Per-user cryptographically secure generated salt
- SQL injection protection using prepared statements
- XSS
- Cookies set to 'HttpOnly'
- Escape rendered user input using:
htmlentities(ENT_QUOTES | ENT_HTML5, 'UTF-8');
- CSRF
- Cookies 'SameSite' set to 'Strict'
- Token for each session used in POST/PUT/DELETE requests
- Bootstrap
- jQuery
Directory structure:
. ├── app │ ├── classes │ │ └── <classes> │ ├── controllers │ │ └── <controllers> │ ├── helper.php │ ├── model │ │ └── <models> │ ├── seed.php │ ├── traits │ │ └── Log.php │ └── views │ └── <views> ├── composer.json ├── config.php ├── config.php.example ├── public │ ├── index.php │ └── <files> ├── route.php ├── syncconfig.sh ├── syncconfig.sh.example └── sync.sh
Some of the pages of the CMS.