Django Academy · Lektion

Skydd mot XSS, CSRF och SQL-injektion

Använd Djangos skydd på rätt sätt

Lektion 3 av 413 steg

Skydd mot XSS, CSRF och SQL-injektion är en gratis lektion i Django Academy på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Django Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Django Academy innehåller totalt 4 lektioner.

De tre stora webbattackerna

De flesta webbincidenter beror på tre klassiker: XSS, CSRF och SQL-injektion. Den goda nyheten är att Django skyddar mot alla tre när du använder det på normalt sätt. 🛡️

Vad XSS är

XSS uppstår när text som en angripare tillhandahåller renderas som aktiv HTML eller ett skript i en annan användares webbläsare, vilket gör det möjligt att stjäla data eller kapa sidan.

Mallar escape:ar automatiskt

Djangos mallmotor escape:ar automatiskt variabler och omvandlar farliga tecken till säkra entiteter. Ett skript i användarinmatningen renderas som ofarlig text, inte som kod.

<p>{{ user_comment }}</p>

Stäng inte av escaping

Filtret safe och mark_safe stänger av escaping. Använd dem endast för innehåll som du litar helt på, annars öppnar du själv XSS-dörren igen.

{{ user_comment|safe }}

Vad CSRF är

CSRF lurar en inloggad användares webbläsare att skicka en dold begäran till din webbplats och utföra åtgärder som användaren aldrig avsåg, till exempel att ändra ett lösenord.

CSRF-token

Django blockerar detta med en hemlig CSRF-token som är kopplad till varje session. Ett förfalskat formulär från en annan webbplats kan inte innehålla rätt token, så POST-begäran avvisas.

Lägg till token i formulär

Lägg in taggen csrf_token i varje POST-formulär. Django infogar det dolda fältet och verifierar det vid skickandet, helt automatiskt.

<form method="post">{% csrf_token %}
  ...
</form>

Vad SQL-injektion är

SQL-injektion smyger in skadlig SQL i en fråga via användarinmatning, så att en angripare kan läsa, ändra eller radera data som de aldrig borde få åtkomst till.

ORM skyddar dig

Om du använder ORM är du skyddad som standard. Det parametriserar värden, så användarinmatning behandlas som data och aldrig som körbar SQL.

Article.objects.filter(title=user_input)

Parametrisera rå SQL

Om du måste skriva rå SQL får du aldrig klistra in inmatning i strängen. Skicka värden som parametrar så att drivrutinen escaper dem säkert åt dig.

Article.objects.raw("SELECT * FROM blog_article WHERE id = %s", [pk])

Lägg till en Content Security Policy

Som ett extra skydd mot XSS talar en Content Security Policy om för webbläsare vilka skript som får köras. Den begränsar skadan även om felaktig markup slinker igenom.

Snabbkontroll

En fråga om hur Django håller dessa attacker borta.

Sammanfattning: standardinställningarna är dina vänner

Mallarnas automatiska escaping, CSRF-token och det parametriserade ORM:et stoppar XSS, CSRF och SQL-injektion. Håll dig till standardinställningarna så förblir du säker. 🙌

Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Skydd mot XSS, CSRF och SQL-injektion” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Django Academy, inklusive ”Skydd mot XSS, CSRF och SQL-injektion”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Django Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Skydd mot XSS, CSRF och SQL-injektion”?

Använd Djangos skydd på rätt sätt Ni övar på Django Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Django Academy?

Du behöver inga förkunskaper. Utbildningen i Django Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Skydd mot XSS, CSRF och SQL-injektion”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Django Academy-lektionen?

Ja. Varje Django Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. DEBUG, SECRET_KEY och ALLOWED_HOSTS
  2. HTTPS, HSTS och säkra cookies
  3. Skydd mot XSS, CSRF och SQL-injektion
  4. Köra driftsättningschecklistan
← Tillbaka till Django Academy