The Cybersecurity checklist for fullstack software engineers.
Let's close the Doughnuts!
First, run the development server:
npm run dev
Open http://localhost:3000 with your browser to view your current cybersecurity score.
Click into each module and check on things you already adopted.
The overall progress will be changed whenever you mark the item as done. This is a great handbook for you when doing fullstack development. For different projects you own, I highly suggest you create a cybersecurity measurement in the UI for it, so that you can always come back and refer to it.
When you mark an item is done, the progress bar on the top will proceed!
- Be aware of Cross-Site Scripting (XSS)
- Be aware of Cross-Site Request Forgery (CSRF)
- Avoid allowing third party cookie whenever possible
- Authenticate the user before granting access
- Strict input validation for form submission
- Set timeouts for browser sessions
- Avoid using any sensitive identifier in the URL parameters
- Never hardcode sensitive information
- Verify the user with every request, using specialized authentication server
- API should have authorization built up against the requester
- API key access should have roles that ties to authorization
- API keys should be rotated with fixed amount of time
- Be aware of SQL injections
- Always upgrade http to https if possible
- Use most up to date credential generating algorithms
- Never store credentials in plain text
- Strict input validation is in place
- Use technologies like PGP encryption for files
- Scan random uploaded files
- Implement a good logger
- Produce logs for every access temptation
- Hooks logs into SIEM systems
- Never hardcode sensitive information
- Give minimal access rights for co-workers on infra
- Have Infrastructure as Code (IaC) setup to reduce human mistakes
- Have you configuration and database backups set up
- Enable all logging for the infrastructure service you use
- Build a Runbook for disaster recovery when the infrastructure is down.
- Have the Web Application Firewalls (WAF) set up
- Only allow traffic from known IP ranges
- Disable insecure protocols like telnet and SNMP
- Make sure only necessary people has access to CI/CD credentials
- Set up vulnerability scanner, so you get notified if any of your dependencies are vulnerable.
- Gitleak scanner integration
- Checkov integrations
- Syft Software Bill of Materials integration
- Integration for open-source software scan
Coursera https://www.coursera.org/ PortSwigger https://portswigger.net/ Zenarmor https://www.zenarmor.com/ OKTA https://developer.okta.com/ GitHub https://github.blog/2022-02-02-build-ci-cd-pipeline-github-actions-four-steps/ Checkov https://www.checkov.io/
This Repository is established by my own experience, from online learnings and lectures. With more experience accumulated, these security measures will be updated and newest recommendations will be provided. I recommend to transfer your previous measurements into the most up-to-date one.