Payment systems face constant attacks and strict correctness requirements. This talk shares practical strategies to fortify Django applications: architecture, data integrity, secure workflows, and defenses against various vulnerabilities.
Applications that handle money have no room for errors. A single insecure endpoint, inconsistent workflow, or even a minor bug can lead to fraud, financial loss, or regulatory trouble. Yet many Django applications rely on defaults that aren’t designed for high-risk environments like payment processing.
In this talk, I share practical lessons learned from securing and modernizing a production-grade Django payment system. We will explore how to design reliable transaction flows, enforce data integrity across distributed components, and prevent sneaky attacks. The session covers common blind spots such as race conditions, replay attacks, unsafe admin usage, as well as the architectural patterns that prevent them.
We will also discuss proper error handling, secrets management, monitoring strategies for fraud and abuse, and how to think like an attacker when evaluating your own code.
Attendees will learn pragmatic security recommendations for building Django applications that can withstand both scale and sophisticated threats.
Dmytro is a software engineer at Preply with over 15 years of experience building reliable backend systems. He enjoys tackling complex technical challenges, especially in big data and cybersecurity. Outside of work, he is often found outdoors or staying active through various sports.