Cyberattacks are becoming more commonplace and the Open Web Application Security Project (OWASP), estimates 94% of sites have flaws in their access control alone.  Attacks evolve to work around new defenses, and defenses must evolve to remain effective.  Developers need to understand the fundamentals of attacks and defenses in order to comprehend new techniques as they become available. This book teaches you how to write secure web applications.

The focus is highlighting how hackers attack applications along with a broad arsenal of defenses.  This will enable you to pick appropriate techniques to close vulnerabilities while still providing users with their needed functionality.

Topics covered include:

  • A framework for deciding what needs to be protected and how strongly
  • Configuring services such as databases and web servers
  • Safe use of HTTP methods such as GET, POST, etc, cookies and use of HTTPS
  • Safe REST APIs
  • Server-side attacks and defenses such as injection and cross-site scripting
  • Client-side attacks and defenses such as cross-site request forgery
  • Security techniques such as CORS, CSP
  • Password management, authentication and authorization, including OAuth2
  • Best practices for dangerous operations such as password change and reset
  • Use of third-party components and supply chain security (Git, CI/CD etc)

  • What You'll Learn

    • Review the defenses that can used to prevent attacks
    • Model risks to better understand what to defend and how
    • Choose appropriate techniques to defend against attacks
    • Implement defenses in Python/Django applications

    Who This Book Is For

    • Developers who already know how to build web applications but need to know more about security
    • Non-professional software engineers, such as scientists, who must develop web tools and want to make their algorithms available to a wider audience.
    • Engineers and managers who are responsible for their product/company technical security policy

    Table of Contents

    1. Cover
    2. Front Matter
    3. 1. Introduction
    4. 2. The Hands-On Environment
    5. 3. Threat Modelling
    6. 4. Transport and Encryption
    7. 5. Installing and Configuring Services
    8. 6. APIs and Endpoints
    9. 7. Cookies and User Input
    10. 8. Cross-Site Requests
    11. 9. Password Management
    12. 10. Authentication and Authorization
    13. 11. OAuth2
    14. 12. Logging and Monitoring
    15. 13. Third-Party and Supply Chain Security
    16. 14. Further Resources
    17. Back Matter