Kode yang aman bukan tambahan belakangan, melainkan cara menulis sejak awal. Section ini membahas ancaman yang paling sering menyerang aplikasi Python dan pertahanan konkretnya, masing-masing dengan contoh rentan dan versi yang diperbaiki.
Prinsip inti kode aman: least privilege, defense in depth, fail securely, input tak dipercaya, dan secure defaults.
Buka → # Validasi dan Sanitasi InputBedah perbedaan validasi dan sanitasi, allowlist vs blocklist, validasi upload, dan encoding output dengan html.escape.
Buka → # Mengelola SecretsKelola secrets dengan environment variables, file .env, gitignore yang disiplin, secret manager, dan rotasi berkala.
Buka → # Password HashingSimpan password dengan hash lambat ber-salt: pbkdf2_hmac, hmac.compare_digest, serta alasan md5 dan sha256 gagal.
Buka → # SQL InjectionDemo serangan SQL injection nyata beserta pertahanannya: parameterized query, ORM, least privilege, dan error hygiene.
Buka → # Path TraversalCegah path traversal dengan Path.resolve, pemeriksaan is_relative_to terhadap base directory, dan whitelist file.
Buka → # Deserialization RisksPahami risiko pickle dan yaml.load, gunakan json serta yaml.safe_load, dan tandatangani payload yang dipertukarkan.
Buka → # Dependency SecurityAmankan rantai pasok dependensi: waspadai typosquatting, pin versi, gunakan lockfile, dan audit dengan pip-audit.
Buka → # TLS dan HTTPSPahami TLS untuk enkripsi, identitas, dan integritas; verifikasi sertifikat dengan requests serta module ssl.
Buka → # Security TestingUji keamanan sebagai bagian test suite: autentikasi wajib, input hostile, fuzzing, dan pemindaian dependensi di CI.
Buka →