Ruby on Rails - Security
- Introduction
- What is Ruby? What is Rails?
- Why Ruby on Rails?
- Importance of writing secure code
- About this course - What you will learn - Need prior dev experience (preferably with ruby) but not necessary. Can do just fine with programming experience.
- Injections in Rails
- SQL Injection
- Cross site Scripting
- Header Injection
- Command Injection
- CSS Injection
- AJAX Injection
- CSRF & Clickjacking in Rails
- What is CSRF
- How it works in rails
- Countermeasures
- What is Clickjacking
- How it works in rails
- Countermeasures
- Default Headers + CSP
- What are headers? And why headers?
- Default headers rails generates
- CSPs
- User Management in Rails
- Basics
- Privilege Escalation
- Brute Forcing Accounts
- Regular Expression usage
- Logging
- Account Hijacking
- Intranet and admin security
- Redirections
- What is redirection
- How to do in rails
- Files
- File uploads - Basics
- File uploads - 2 (scanning for viruses using clamav)
- Executable code in file uploads and how to avoid them
- Handling file downloads
- Sessions
- Basics
- Session Hijacking
- Session Fixation
- Session Expiry
- Session Storage
- Rotations and Signed Cookies
- Replay Attacks
- Rate limiting using rack attack
- What is rate limiting
- Rate limiting tactics and strategies
- Safelisting and blacklisting
- Tracking and throttling
- Blocking bad requests not in routes - advanced
- Combining it all together
- Testing application using brakeman
- Why test
- How to test using brakeman
- Analyzing results
- Example SQLI fix
- Other examples and how to fix
- Security gems
- Secure Headers
- Codesake Dawn
- Devise
- Rubocup
- Best practices in Rails
- Penetration testing techniques
- Secure Coding tips
- Authentication in rails - using devise - short guide
- Other security and privacy tips
- Wind up
- Summary of what to look out for when coding
- Digital Privacy tips
Topics related to rails security
- Mass assignments and SQL injection - 30 mins
- Application security tools - 5 mins
- Code review - 5 mins
- Penetration testing techniques - 15 mins
- Statics analysis - 15 mins