This sections contains notes on API security and other helpful information. Below are some links to helpful resources. For example, OWASP is the Open Worldwide Application Security Project which produces a lot of articles on best practices that are freely available. APIsec offers courses to learn more about security and TryHackMe provides hands-on lessons on a ton of topics as well.
- OWASP Top 10 API Security Risks
- Disaster Recovery Plans
- Chaos Engineering
- Common Vulnerabilities
- Add Salt to Passwords
- Automated Package Scanning
- Package Vulnerabilities
- Character Encoding
- Broken Object Level Authorization
- Broken Authentication
- Broken Object Property Level Authorization
- Unrestricted Resource Consumption
- Broken Function Level Authorization
- Unrestricted Access to Sensitive Business Flows
- Server Side Request Forgery
- Security Misconfiguration
- Improper Inventory Management
- Unsafe Consumption of APIs
- OWASP Top 10 API Security Risks – 2023
- 2023 OWASP API Top Ten
- OWASP API Security Top 10 Vulnerabilities: 2023
Many things could occur to disrupt normal operation of your software. It could range from a natural disaster, an accident or nefarious actors attempting to impact your application. When an outage occurs, it is important to know how you will react. Depending on the size and scope of the application the response can range from simply waiting if that's reasonable in your situation to deploying the application to another region. In some cases, the application will already be built to handle large server outages by being cross-region. Below are a number of links discussing important disaster recovery concepts to keep in mind.
- Disaster recovery options in the cloud
- What is a Disaster Recovery Plan?
- What is a disaster recovery plan (DRP)?
- Example: Disaster recovery plan
- Emergency Services Sector Continuity Planning Suite
In order to test your disaster recovery preparedness teams can run "game days" to see how software and teams respond to outages. Netflix is known for developing a "chaos engineering" culture to ensure systems run smoothly in the face of adversity. Below are links covering this topic.
- AWS Well-Architected: Game day
- Break Your Software, or, How to Run a Gameday
- How To Run An Epic Game Day ~ Chaos Engineering 101
- Introduction to GameDays
- Netflix Blog: Chaos Engineering Articles
- Chaos Monkey
There are a lot of common things we need to keep in mind when building software. In terms of security, sanitizing user input is one that comes to mind. Below is a link to OWASP cheat sheets for many different aspects of software development as well as a few highlights:
- OWASP Cheat Sheet Series
- Cross Site Scripting Prevention Cheat Sheet
- Input Validation Cheat Sheet
- OAuth 2.0 Protocol Cheat Sheet
- SQL Injection Prevention Cheat Sheet
To help increase security around passwords it can be good to add what is known as "salt" before hashing them. To do this extra characters are appended to the passwords. Doing so can make it harder for people to crack and analyze.
- Adding Salt to Hashing: A Better Way to Store Passwords
- Password Storage Cheat Sheet - Salting
- Salt (cryptography)
There are tools to automatically scan and detect vulnerabilities in software. These can be plugged into our code repositories and even automatically create PRs to update package versions.
You can review security vulnerabilities found in online packages using services like Snyk. They provide an online search tool to review issues across the major package managers.
URL encoding is a core part of web development. This can help prevent common attacks like XSS and SQL injection.