JavaScript Security

  1. Core Client-Side Vulnerabilities
    1. Cross-Site Scripting (XSS)
      1. Anatomy of an XSS Attack
        1. Injection Points
          1. Execution Contexts
            1. Exploitation Flow
              1. Payload Delivery Methods
              2. Types of XSS
                1. Reflected XSS
                  1. Characteristics
                    1. Common Sources
                      1. URL-Based Attacks
                        1. Form Parameter Exploitation
                        2. Stored (Persistent) XSS
                          1. Characteristics
                            1. Common Sources
                              1. Database Storage Attacks
                                1. File Upload Vulnerabilities
                                2. DOM-based XSS
                                  1. Client-Side Vulnerabilities
                                    1. DOM Manipulation Flaws
                                      1. JavaScript Source and Sink Analysis
                                        1. Fragment-Based Attacks
                                        2. Blind XSS
                                          1. Delayed Execution
                                            1. Out-of-Band Detection
                                          2. XSS Payloads and Their Impact
                                            1. Session Hijacking
                                              1. Keylogging
                                                1. Phishing
                                                  1. Website Defacement
                                                    1. Drive-by Downloads
                                                      1. Credential Harvesting
                                                        1. Browser Exploitation
                                                        2. Detection and Prevention Techniques
                                                          1. Input Validation
                                                            1. Output Encoding
                                                              1. Content Security Policy
                                                                1. XSS Filters and WAFs
                                                              2. Cross-Site Request Forgery (CSRF)
                                                                1. How CSRF Attacks Work
                                                                  1. Exploiting Authenticated Sessions
                                                                    1. Crafting Malicious Requests
                                                                      1. Social Engineering Components
                                                                      2. The Role of JavaScript in CSRF
                                                                        1. Limitations of JavaScript in CSRF
                                                                          1. Use of Cookies and Authentication Tokens
                                                                            1. XMLHttpRequest and Fetch API Restrictions
                                                                            2. Difference between XSS and CSRF
                                                                              1. Attack Mechanisms
                                                                                1. Impact and Mitigation
                                                                                  1. Combined Attack Scenarios
                                                                                  2. Prevention Strategies
                                                                                    1. CSRF Tokens
                                                                                      1. Origin Header Validation
                                                                                        1. Custom Headers
                                                                                      2. Clickjacking (UI Redressing)
                                                                                        1. Attack Mechanism
                                                                                          1. Overlaying Transparent Frames
                                                                                            1. Tricking Users into Unintended Actions
                                                                                              1. Invisible Element Positioning
                                                                                              2. Frame Busting
                                                                                                1. Implementation Techniques
                                                                                                  1. Limitations and Bypasses
                                                                                                    1. JavaScript-Based Protection
                                                                                                    2. Modern Browser Protections
                                                                                                      1. X-Frame-Options Header
                                                                                                        1. CSP frame-ancestors Directive
                                                                                                        2. Advanced Clickjacking Techniques
                                                                                                          1. Drag and Drop Attacks
                                                                                                            1. Double Clickjacking
                                                                                                              1. Stroke-Based Attacks
                                                                                                            2. Prototype Pollution
                                                                                                              1. Understanding JavaScript Prototypes
                                                                                                                1. Prototype Chain
                                                                                                                  1. Object Inheritance
                                                                                                                    1. Constructor Functions
                                                                                                                    2. The Vulnerability Mechanism
                                                                                                                      1. Modifying Object Prototypes
                                                                                                                        1. Impact on Application Logic
                                                                                                                          1. Recursive Merge Vulnerabilities
                                                                                                                          2. Exploitation Scenarios
                                                                                                                            1. Denial of Service
                                                                                                                              1. Privilege Escalation
                                                                                                                                1. Remote Code Execution
                                                                                                                                  1. Property Injection
                                                                                                                                  2. Prevention and Detection
                                                                                                                                    1. Object.freeze() Usage
                                                                                                                                      1. Map vs Object Usage
                                                                                                                                        1. Input Validation
                                                                                                                                          1. Static Analysis Tools
                                                                                                                                        2. Insecure Handling of Sensitive Data
                                                                                                                                          1. Client-Side Storage Mechanisms
                                                                                                                                            1. Local Storage
                                                                                                                                              1. Persistence and Accessibility
                                                                                                                                                1. Security Risks
                                                                                                                                                  1. Cross-Tab Access
                                                                                                                                                  2. Session Storage
                                                                                                                                                    1. Scope and Lifetime
                                                                                                                                                      1. Security Considerations
                                                                                                                                                      2. Cookies
                                                                                                                                                        1. Risks of Client-Side Storage
                                                                                                                                                          1. HttpOnly and Secure Flags
                                                                                                                                                          2. IndexedDB
                                                                                                                                                            1. Structured Data Storage
                                                                                                                                                              1. Security Implications
                                                                                                                                                              2. Web SQL (Deprecated)
                                                                                                                                                                1. Legacy Security Concerns
                                                                                                                                                              3. Risks of Exposing API Keys and Secrets
                                                                                                                                                                1. Hardcoding Secrets in JavaScript
                                                                                                                                                                  1. Source Code Exposure
                                                                                                                                                                    1. Mitigation Strategies
                                                                                                                                                                      1. Environment Variable Leakage
                                                                                                                                                                      2. Memory-Based Attacks
                                                                                                                                                                        1. JavaScript Heap Analysis
                                                                                                                                                                          1. Garbage Collection Timing
                                                                                                                                                                            1. Memory Dumps