Talk

Securing High-Risk Django Applications: Lessons from the Payment Domain

Friday, May 29

15:45 - 16:15
RoomSpaghetti
LanguageEnglish
Audience levelIntermediate
Elevator pitch

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.

Abstract

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.

TagsSecurity, Performance and scalability techniques
Participant

Dmytro Khmelenko

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.