Secure coding in Python with Claude Code

This course provides a comprehensive insight into the responsible use of generative AI in coding. Participants delve into topics in software development that are most likely to be impacted by careless use of generative AI, including authentication, authorization, and cryptography. The curriculum also includes an analysis of how Claude Code handle secure coding practices related to key vulnerabilities outlined in the OWASP Top Ten, such as path traversal, SQL injection, or cross-site scripting.

Generative AI is transforming the software industry, with tools like Claude Code, enabling developers to achieve unprecedented levels of efficiency. While this is exciting progress, it also raises important concerns, encouraging stakeholders to approach these technologies with care. Current AI tools often lack the nuanced understanding necessary to address subtle, yet critical aspects of software development, particularly in the domain of security.

Through hands-on learning and experimenting, participants will get a solid understanding of both the strengths and limitations of AI-assisted development. In addition, case studies of real-world incidents showcase the consequences of insecure code and demonstrate the dual nature of generative AI as both a resource and a potential risk.

At a glance

  • 31 labs
  • 18 case studies
  • Standards & references: OWASP, CWE and Fortify Taxonomy

Course goal

By the end of the course, developers will be equipped with the knowledge and skills to integrate AI tools into the software development lifecycle responsibly, enhancing efficiency without compromising security or product quality.

Skills gained

  • Understanding the essentials of responsible AI
  • Getting familiar with essential cyber security concepts
  • Understanding Web application security issues
  • Detailed analysis of the OWASP Top Ten elements
  • Putting Web application security in the context of Python
  • Going beyond the low hanging fruits
  • Managing vulnerabilities in third party components
  • Input validation approaches and principles
  • All this put into the context of Claude Code    

Prerequisites

General Python and Web development  

Target audience

Python developers using Claude Code  

 

 See all courses in this subject area

 

Course Outline:

  • Coding responsibly with Claude Code
  • The OWASP Top Ten from Claude Code's perspective
  • Wrap up  

Course contents:

Day 1

Coding responsibly with Claude Code

The OWASP Top Ten from Claude Code's perspective

  • The OWASP Top Ten 2025
  • A01 - Broken Access Control
    • Access control basics
    • Case study –     Broken authz in FIFA platform during 2026 World Cup    
    • Confused deputy
      • Insecure direct object reference (IDOR)
      • Path traversal 
        • Lab – Insecure Direct Object Reference
      • Path traversal best practices
      • Lab – Experimenting with path traversal in Claude Code
      • Authorization bypass through user-controlled keys
      • Case study – Remote takeover of Nexx garage doors and alarms
        • Demonstration – Horizontal authorization
    • File upload
      • Unrestricted file upload
      • Good practices
        • Demonstration – Unrestricted file upload
    • Server-side Request Forgery (SSRF)
      • Case study – SSRF in Ivanti Connect Secure
  • A02 - Security Misconfiguration
    • Configuration principles
    • Python configuration best practices
      • Configuration Flask
    • Web security configuration issues
      • Content Security Policy
      • Fetch directives
      • Source allowlisting
      • Strict CSP: using nonces and hashes
      • CSP best practices
    • Cookie security
      • Cookie attributes
    • Secrets management
      • Hard coded passwords
      • Best practices
        • Demonstration – Hardcoded password
    • XML entities
      • DTD and the entities
      • Entity expansion
      • External Entity Attack (XXE)
        • File inclusion with external entities
        • Server-Side Request Forgery with external entities
          • Demonstration – External entity attack
        • Preventing XXE
          • Demonstration – Prohibiting DTD
        • Case study – XXE vulnerability in Ivanti products
        • Lab – Experimenting with XXE in Claude Code

Day 2

The OWASP Top Ten from Claude Code's perspective

  • A03 - Software Supply Chain Failures
    • Using vulnerable components
    • Assessing the environment
    • Hardening
    • Untrusted functionality import
    • Malicious packages in Python
    • Supply chain security and the Software Bill of Materials (SBOM)
    • SBOM examples
    • Case study – The Polyfill.io supply chain attack
    • Vulnerability management
    • Security of AI generated code
      • Practical attacks against code generation tools
      • Dependency hallucination via generative AI
      • Case study – Agentic coding and code security (mid-2025 onward)
  • A05 - Injection
    • Input validation
      • Input validation principles
      • Denylists and allowlists
      • Case study - Denylist failure in urllib.parse.urlparse()
      • What to validate – the attack surface
      • Where to validate – defense in depth
      • When to validate – validation vs transformations
    • SQL injection
      • SQL injection basics
        • Demonstration – SQL injection
      • Attack techniques
      • Content-based blind SQL injection
      • Time-based blind SQL injection
      • SQL injection best practices
        • Input validation
        • Parameterized queries
          • Demonstration – Using prepared statements
      • Case study – SQL injection against US airport security
    • Code injection
      • Code injection via input()
      • OS command injection
        • Lab – Command injection
      • OS command injection best practices
      • Avoiding command injection with the right APIs
        • Demonstration – Command injection best practices
      • Lab - Experimenting with command injection in Claude Code
      • Case study – Shellshock
        • Demonstration - Shellshock
      • Case study - Command injection in Ivanti security appliances
    • HTML injection - Cross-site scripting (XSS)
      • Cross-site scripting basics
      • Cross-site scripting types
        • Persistent cross-site scripting
        • Reflected cross-site scripting
        • Client-side (DOM-based) cross-site scripting
          • Demonstration – Stored XSS
          • Demonstration – Reflected XSS
    • Case study - XSS to RCE in Teltonika routers
    • XSS protection best practices
      • Protection principles - escaping
        • Demonstration – XSS fix / stored
      • Demonstration – XSS fix / reflected
      • Case study - XSS vulnerabilities in DrayTek Vigor routers

Day 3

The OWASP Top Ten from Claude Code's perspective

  • A06 - Insecure Design
    • The STRIDE model of threats
    • Secure design principles of Saltzer and Schroeder
      • Economy of mechanism
      • Fail-safe defaults
      • Complete mediation
      • Open design
      • Separation of privilege
      • Least privilege
      • Least common mechanism
      • Psychological acceptability
    • Client-side security
      • Frame sandboxing
        • Cross-Frame Scripting (XFS) attacks
          • Demonstration – Clickjacking
        • Clickjacking protection best practices
        • Demonstration – Using CSP to prevent clickjacking
  • A07 - Authentication Failures
    • Authentication
      • Authentication basics
      • Multi-factor authentication (MFA)
      • Case study – The InfinityGauntlet attack
    • Password management
      • Storing account passwords
      • Password in transit
        • Demonstration – Is just hashing passwords enough?
      • Dictionary attacks and brute forcing
      • Salting
      • Adaptive hash functions for password storage
        • Demonstration – Using adaptive hash functions in Python
      • Lab – Using adaptive hash functions in Claude Code
    • Password policy
  • A08 - Software and Data Integrity Failures
    • Subresource integrity
      • Importing JavaScript
        • Demonstration – Importing JavaScript
      • Case study – The British Airways data breach
    • Insecure deserialization
      • Serialization and deserialization challenges
      • Integrity – deserializing untrusted streams
      • Deserialization with Pickle
        • Demonstration - Deserializing with Pickle
      • Case study – The security of the machine learning supply chain
      • Case study – The first wave of supply chain attacks: RCE via pickle (2022)
      • Case study – Compromising the Hugging Face Hub repository
      • Integrity – deserialization best practices
      • Property Oriented Programming (POP)
        • Creating a POP payload
          • Demonstration – Creating a POP payload
          • Demonstration – Using the POP payload
  • A10 - Mishandling of Exceptional Conditions
    • Error and exception handling principles
    • Error handling
      • Returning a misleading status code
      • Reachable assertion
      • Information exposure through error reporting
        • Information leakage via error pages
        • Case study – Information leakage via errors in Apache Superset
    • Exception handling
      • In the except block. And now what?
      • Empty except block
        • Lab – Exception handling mess

Wrap up

  • Secure coding principles
    • Principles of robust programming by Matt Bishop
  • And now what?
    • Software security sources and further reading
    • Python resources
    • Generative AI – Resources and additional guidance

FAQ – Secure coding in Python with Claude Code

Hva koster kurset?
Prisen er 29 500 NOK ekskl. mva. Kurset inkluderer digital kursdokumentasjon og hands-on labs. Lunsj og forfriskninger er inkludert ved klasseromskurs.

Hvor lenge varer kurset?
Kurset varer i tre dager.

Hvordan gjennomføres kurset?
Kurset kan gjennomføres fysisk eller online. Undervisningen kombinerer faglig gjennomgang, demonstrasjoner, praktiske laboratorieøvelser og case-studier fra virkelige sikkerhetshendelser.

Hvem passer kurset for?
Kurset passer for Python-utviklere som bruker Claude Code og ønsker å utvikle sikrere programvare. Det er særlig relevant for utviklere som jobber med webapplikasjoner og vil forstå hvordan de kan vurdere og forbedre sikkerheten i AI-generert kode.

Hvilke forkunnskaper kreves?
Du bør ha generell erfaring med Python og webutvikling. Kurset bygger videre på denne kunnskapen med sikkerhetsprinsipper, praktiske øvelser og bruk av Claude Code.

Må jeg ha erfaring med sikkerhet eller Claude Code fra før?
Kursbeskrivelsen oppgir generell Python- og webutvikling som forkunnskapskrav. Det er ikke oppgitt egne krav til sikkerhetskompetanse eller et bestemt erfaringsnivå med Claude Code, men målgruppen er utviklere som bruker verktøyet.

Hva lærer jeg i løpet av kurset?
Du lærer å bruke Claude Code på en ansvarlig måte i utviklingsarbeidet, med vekt på sikkerhet i Python-baserte webapplikasjoner. Etter kurset vil du kunne:

  • Forstå sentrale sikkerhetsbegreper og prinsipper for ansvarlig bruk av AI

  • Identifisere vanlige sårbarheter i webapplikasjoner og forstå konsekvensene

  • Bruke OWASP Top Ten som utgangspunkt for sikrere Python-utvikling

  • Forebygge feil i tilgangskontroll, autentisering og passordhåndtering

  • Validere inndata og beskytte mot blant annet SQL injection, command injection og XSS

  • Forstå og håndtere risiko ved sårbare og ondsinnede tredjepartspakker

  • Vurdere styrker og begrensninger ved AI-assistert utvikling

Er kurset praktisk rettet?
Ja. Kurset inneholder 31 laboratorieøvelser og 18 case-studier, i tillegg til demonstrasjoner. Du arbeider blant annet med tilgangskontroll, path traversal, XML External Entity-angrep (XXE), command injection, passordhåndtering og informasjonslekkasje i Flask.

Hvilke temaer dekkes i kurset?
Kurset dekker blant annet:

  • Ansvarlig bruk av Claude Code i programvareutvikling

  • Sentrale sårbarhetskategorier i OWASP Top Ten 2025

  • Tilgangskontroll, IDOR og path traversal

  • Sikker filopplasting og Server-Side Request Forgery (SSRF)

  • Sikker konfigurasjon av Python og Flask

  • SQL injection, command injection og cross-site scripting (XSS)

  • Sikker design, autentisering og passordhåndtering

  • Sårbare pakker og sikkerhet i programvarens leverandørkjede

  • Usikker deserialisering med pickle

  • Sikker feil- og unntakshåndtering

Hvordan brukes Claude Code i kurset?
Claude Code inngår i praktiske eksperimenter der du undersøker hvordan verktøyet håndterer sikkerhetsrelevante kodeoppgaver. Du arbeider blant annet med path traversal, XXE, command injection og adaptive hashfunksjoner for passordlagring. Målet er å forstå både hva verktøyet kan bidra med, og hvor det kreves kritisk vurdering fra utvikleren.

Lærer jeg å oppdage sikkerhetsfeil i AI-generert kode?
Ja. Kurset setter vanlige sårbarheter og sikker programmering inn i en kontekst med Claude Code. Gjennom øvelser og demonstrasjoner lærer du å identifisere feil og forstå hvorfor AI-generert kode må vurderes med samme oppmerksomhet på sikkerhet som annen kode.

Hvordan brukes OWASP Top Ten i kurset?
Kurset tar utgangspunkt i OWASP Top Ten 2025 og setter sentrale sårbarhetskategorier inn i en Python-kontekst. Du lærer blant annet om svak tilgangskontroll, sikkerhetsfeil i konfigurasjon, injeksjonsangrep, usikker design og autentiseringsfeil. Temaene knyttes til praktiske eksempler og bruk av Claude Code.

Lærer jeg å beskytte mot SQL injection og XSS?
Ja. Kurset gjennomgår hvordan SQL injection og cross-site scripting oppstår, hvilke konsekvenser de kan få, og hvordan de kan forebygges. Du lærer blant annet om parameteriserte databasespørringer, validering av inndata og escaping av utdata.

Dekker kurset autentisering og tilgangskontroll?
Ja. Du lærer om tilgangskontroll, usikre direkte objektreferanser (IDOR), omgåelse av autorisasjon og autentiseringsfeil. Kurset tar også opp multifaktorautentisering, sikker passordlagring, salting og adaptive hashfunksjoner, med demonstrasjoner i Python og øvelser med Claude Code.

Hvilke Python-spesifikke sikkerhetsutfordringer blir gjennomgått?
Kurset tar blant annet opp sikker konfigurasjon av Flask, ondsinnede Python-pakker, avhengighetssjekking og deserialisering med pickle. Du lærer også om fallgruver ved validering av URL-er, informasjonslekkasje fra feilsider og tomme except-blokker.

Er kurset relevant hvis jeg utvikler med Flask?
Ja. Kurset tar opp konfigurasjon av Flask og inneholder en praktisk øvelse om informasjonslekkasje i Flask-applikasjoner. I tillegg gjennomgås webrelaterte sikkerhetstemaer som cookies, tilgangskontroll, injeksjonsangrep og feilhåndtering.

Hvilke beskyttelsesmekanismer blir gjennomgått?
Kurset tar blant annet for seg Content Security Policy (CSP), sikkerhetsinnstillinger for cookies, parameteriserte databasespørringer, adaptive hashfunksjoner og Subresource Integrity (SRI). Du lærer også om sikker XML-konfigurasjon og tiltak mot clickjacking, usikker filopplasting og deserialisering.

Lærer jeg om risiko ved pakker og avhengigheter som AI foreslår?
Ja. Kurset tar opp sårbare og ondsinnede Python-pakker, samt «dependency hallucination», der generativ AI foreslår avhengigheter som ikke finnes. Du lærer også om avhengighetssjekking i Python, Software Composition Analysis og Software Bill of Materials (SBOM), som bidrar til oversikt over komponenter og sårbarheter i programvaren.

Dekker kurset sikkerhetsrisiko ved pickle?
Ja. Kurset gjennomgår deserialisering med pickle og risikoen ved å behandle data fra upålitelige kilder. Demonstrasjoner og case-studier viser hvordan usikker deserialisering kan føre til kjøring av uønsket kode. Du lærer også prinsipper for sikrere deserialisering.

Er kurset relevant for utviklere som jobber med maskinlæring?
Ja, særlig hvis du jobber med Python-pakker, serialiserte data eller eksterne modellressurser. Kurset inneholder case-studier om sikkerhet i leverandørkjeden for maskinlæring, angrep via pickle og kompromittering av Hugging Face Hub. Hovedvekten i kurset er likevel sikker Python- og webutvikling med Claude Code.

Lærer jeg om sikker feil- og unntakshåndtering?
Ja. Kurset gjennomgår hvordan feilmeldinger og feil håndtering av unntak kan eksponere informasjon eller gi uønsket oppførsel. Du arbeider blant annet med misvisende statuskoder, informasjonslekkasje fra feilsider og tomme except-blokker.

Hvilke standarder og referanser bygger kurset på?
Kurset viser til OWASP, Common Weakness Enumeration (CWE) og Fortify Taxonomy. Disse brukes som referanser for å forstå og klassifisere sikkerhetssvakheter. Kurset gjennomgår også etablerte prinsipper for sikker design og robust programmering.

Hva gjør dette kurset nyttig?
Kurset knytter konkrete sikkerhetsutfordringer i Python-baserte webapplikasjoner til bruk av Claude Code. Du får praktisk erfaring med å identifisere sårbarheter, forstå konsekvensene og bruke beskyttelsestiltak. Dette gir et bedre grunnlag for å bruke AI-verktøy effektivt uten å gå på bekostning av sikkerhet og produktkvalitet.

Får jeg sertifisering etter kurset?

Dette kurset leder ikke til en offisiell sertifisering.

Kan kurset leveres bedriftsinternt?
Ja. Kurset kan leveres både som åpent kurs og som bedriftsinternt kurs.

Andre relevante kurs

Vil du lære mer om sikker AI-assistert utvikling i Python? Dette kurset kan også være aktuelt:

Sikker utvikling med Claude Code i andre språk

Jobber du eller teamet ditt med flere programmeringsspråk? Disse kursene tar for seg sikker utvikling med Claude Code:

Sikker utvikling med GitHub Copilot i andre språk

Other relevant courses

24. November
1 days
Classroom Virtual
25. November
3 days
Classroom Virtual