Django teikia stiprias integruotas apsaugas nuo pagrindinių žiniatinklio pažeidžiamumų (OWASP Top 10) — saugumas yra pagrindinė projektavimo prioritetas, ir daug apsaugų yra įjungtos pagal numatymą. Jų supratimas yra būtinas kuriant saugias aplikacijas ir nepergrupti šių apsaugų.
# ✅ the ORM uses PARAMETERIZED queries automatically — safe by default
filter
# input is never executable SQL
# ⚠️ raw SQL CAN be vulnerable — always parameterize:
"SELECT * FROM users WHERE name = %s"
# ✅ parameterized
# NEVER: f"SELECT ... WHERE name = '{user_input}'" ❌ injectable
ORM parametrizuoja visas užklausas, užkertant SQL injekciją pagal numatymą — pagrindinis pažeidžiamumo klasės šaltinis, pašalintas, jei nerašote nesaugios žalios SQL.
<formmethod="post">
{% csrf_token %} <!-- REQUIRED — Django validates this token on POST -->
...
</form>
CSRF programinė įranga reikalauja žetono būsenos keitimo prašymuose (POST/PUT/DELETE), blokavusi klastotus prašymus iš kitų svetainių.
4. Viršutinio nusodinimo ataka — X-Frame-Options
python
# XFrameOptionsMiddleware (default) sends X-Frame-Options: DENY# → prevents your site from being embedded in a malicious <iframe>
5. Saugus slaptažodžio tvarkymas
python
# passwords are HASHED with strong algorithms (PBKDF2 by default), never plaintext
user.set_password(raw_password) # hashes automatically# + password validators enforce strength (length, common-password checks)
6. HTTPS / transporto saugumas (gamybos nustatymai)
python
# settings.py — enable these in production
SECURE_SSL_REDIRECT = True# force HTTPS
SESSION_COOKIE_SECURE = True# cookies only over HTTPS
CSRF_COOKIE_SECURE = True
SECURE_HSTS_SECONDS = 31536000# HSTS — enforce HTTPS
SECURE_CONTENT_TYPE_NOSNIFF = True
⚠️ DEBUG = False in production — DEBUG=True leaks tracebacks, settings, source paths
⚠️ Keep SECRET_KEY secret (env vars, not code) — it signs sessions/tokens
⚠️ Set ALLOWED_HOSTS to prevent Host-header attacks
⚠️ Don't use |safe or mark_safe on untrusted input (reopens XSS)
⚠️ Always validate/sanitize input; use Django forms/serializers
⚠️ Run `python manage.py check --deploy` to audit production security settings
Kodėl tai svarbu
Saugumas yra kritinis bet kuriai žiniatinklio aplikacijai, ir Django integruotų apsaugų supratimas yra būtinas tiek joms naudoti, tiek nepergrupti — Django stiprūs saugumo numatymai yra pagrindinė priežastis, kodėl ji yra patikima rimtoms aplikacijoms, bet jos jus gina tik jei supraniatte ir juos gerbiате.
Django sprendžia labiausiai pagrindinius ir pavojingus žiniatinklio pažeidžiamumus pagal numatymą: ORM užkerta SQL injekciją per parametrizuotas užklausas, šablono automatinis išėmimas užkerta XSS, CSRF programinė įranga užkerta tarpsite prašymo klastojimą, viršutinio nusodinimo atakos apsauga yra integruota, ir slaptažodžiai saugiai šiurinami — pašaliniant visas pažeidžiamumo kategorijas, kurias kūrėjai turi tvarkyti rankiniu būdu (ir dažnai suklydinti) mažiau saugumo susikoncentravusiuose karkuose.
Šių apsaugų supratimas yra svarbus, kad žinotumėte, jog jos egzistuoja, jas tinkamai sukonfigūruotumėte (ypač gamybos saugumo nustatymai HTTPS, saugiems slapukams ir HSTS), ir — kritiškai — nepergrupti jų rankiniu būdu: dažniausiai Django saugumo nesėkmes sukelia numatytųjų nustatymų sugriaušimas, pavyzdžiui, DEBUG=True paliekimas gamyboje (nutekinant jautrias jėgas ir nustatymus užpuolikams), SECRET_KEY įvykdymas versijos kontrolėje, |safe/mark_safe naudojimas nepatikimoje įvestyje (atidaryti XSS), neparametrizuotos žalos SQL rašymas (atidaryti injekciją), arba ALLOWED_HOSTS netinkamas konfigūravimas.
Numatytus Django teikiamus apsaugos, kaip sukonfigūruoti saugius gamybos nustatymus, ir atsakomybę nesusilpninti numatytųjų nustatymų (plius check --deploy naudojimas auditui) yra pagrindiniai, norint kurti saugias aplikacijas.
Nes žiniatinklio aplikacijos yra pastovūs atakų tikslai ir saugumo nesėkmos gali būti katastrofiškos (duomenų nutekinimas, paskyros kompromisas), Django saugumo modelio supratimas — tiek kas jį automatiškai gina, tiek jūsų atsakomybė palaikyti šias apsaugas — yra būtina, didelės vertės žinių sritis, atspindinti profesionalų, saugumo sąmoningą plėtrą, ir yra dažna, svarbi tema bet kuriai gamybos aplikacijai.
IT pokalbių klausimų biblioteka su išsamiais atsakymais — nuo Junior iki Senior.