FixVibe
Covered by FixVibehigh

ЗКСЦВФИКСВИБЕСЕГ0 ЦСРФ заштита: одбрана од неовлашћених промена стања ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ1 Научите како да спречите фалсификовање захтева на више локација (ЦСРФ) коришћењем Дјанго међувера и атрибута колачића СамеСите. ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ2 Фалсификовање захтева на више локација (ЦСРФ) остаје значајна претња веб апликацијама. Ово истраживање истражује како модерни оквири као што је Дјанго имплементирају заштиту и како атрибути на нивоу претраживача као што је СамеСите пружају дубину одбрану од неовлашћених захтева. ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ3 ## Импацт ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ4 Фалсификовање захтева на више локација (ЦСРФ) омогућава нападачу да превари претраживач жртве да изврши нежељене радње на другој веб локацији на којој је жртва тренутно аутентификована. Пошто прегледачи аутоматски укључују амбијенталне акредитиве попут колачића у захтеве, нападач може да фалсификује операције промене стања — као што је промена лозинки, брисање података или покретање трансакција — без знања корисника. ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ5 ## Основни узрок ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ6 Основни узрок ЦСРФ-а је подразумевано понашање веб прегледача слања колачића повезаних са доменом кад год се захтев упути том домену, без обзира на порекло захтева ЗКСЦВФИКСВИБЕТОКЕН0ЗКСЦВ. Без посебне провере да је захтев намерно покренут из сопственог корисничког интерфејса апликације, сервер не може да разликује легитимну радњу корисника од лажне. ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ7 ## Дјанго ЦСРФ заштитни механизми ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ8 Дјанго обезбеђује уграђени одбрамбени систем за ублажавање ових ризика кроз интеграцију међувера и шаблона ЗКСЦВФИКСВИБЕТОКЕН0ЗКСЦВ. ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ9 ### Активација средњег софтвера ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ10 ЗКСЦВФИКСВИБЕТОКЕН0ЗКСЦВ је одговоран за ЦСРФ заштиту и обично је омогућен по подразумеваној вредности ЗКСЦВФИКСВИБЕТОКЕН1ЗКСЦВ. Мора бити позициониран пре него што је било који средњи софтвер погледа који претпоставља да су ЦСРФ напади већ обрађени ЗКСЦВФИКСВИБЕТОКЕН2ЗКСЦВ. ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ11 ### Имплементација шаблона ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ12 За све интерне ПОСТ обрасце, програмери морају укључити ознаку ЗКСЦВФИКСВИБЕТОКЕН0ЗКСЦВ унутар ЗКСЦВФИКСВИБЕТОКЕН1ЗКСЦВ елемента ЗКСЦВФИКСВИБЕТОКЕН2ЗКСЦВ. Ово осигурава да је јединствени, тајни токен укључен у захтев, који сервер затим проверава у односу на сесију корисника. ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ13 ### Ризици од цурења токена ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ14 Кључни детаљ имплементације је да ЗКСЦВФИКСВИБЕТОКЕН0ЗКСЦВ никада не треба да буде укључен у обрасце који циљају спољне УРЛ адресе ЗКСЦВФИКСВИБЕТОКЕН1ЗКСЦВ. Ако то урадите, тајни ЦСРФ токен би одао трећој страни, потенцијално компромитујући безбедност сесије корисника ЗКСЦВФИКСВИБЕТОКЕН2ЗКСЦВ. ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ15 ## Одбрана на нивоу претраживача: колачићи СамеСите ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ16 Савремени претраживачи су увели атрибут ЗКСЦВФИКСВИБЕТОКЕН0ЗКСЦВ за заглавље ЗКСЦВФИКСВИБЕТОКЕН1ЗКСЦВ да би обезбедили слој ЗКСЦВФИКСВИБЕТОКЕН2ЗКСЦВ са дубином одбране. ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ17 - **Строго:** Колачић се шаље само у контексту прве стране, што значи да се сајт у УРЛ траци подудара са доменом колачића ЗКСЦВФИКСВИБЕТОКЕН0ЗКСЦВ. ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ18 - **Лак:** Колачић се не шаље на подзахтеве на више локација (као што су слике или оквири), већ се шаље када корисник дође до почетне странице, на пример праћењем стандардне везе ЗКСЦВФИКСВИБЕТОКЕН0ЗКСЦВ. ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ19 ## Како ЗКСЦВФИКСВИБЕТОКЕН0ЗКСЦВ тестира за то ЗКСЦВФИКСВИБЕСЕГЕНД ЗКСЦВФИКСВИБЕСЕГ20 ЗКСЦВФИКСВИБЕТОКЕН1ЗКСЦВ сада укључује ЦСРФ заштиту као активну проверу са ограничењем. Након верификације домена, ЗКСЦВФИКСВИБЕТОКЕН0ЗКСЦВ проверава откривене обрасце који мењају стање, проверава уносе у облику ЦСРФ токена и сигнале колачића СамеСите, затим покушава да поднесе лажно порекло са малим утицајем и извештава само када сервер то прихвати. Провере колачића такође означавају слабе СамеСите атрибуте који смањују ЦСРФ одбрану у дубини.

Cross-Site Request Forgery (CSRF) remains a significant threat to web applications. This research explores how modern frameworks like Django implement protection and how browser-level attributes like SameSite provide defense-in-depth against unauthorized requests.

CWE-352

Impact

Cross-Site Request Forgery (CSRF) allows an attacker to trick a victim's browser into performing unwanted actions on a different website where the victim is currently authenticated. Because browsers automatically include ambient credentials like cookies in requests, an attacker can forge state-changing operations—such as changing passwords, deleting data, or initiating transactions—without the user's knowledge.

Root Cause

The fundamental cause of CSRF is the web browser's default behavior of sending cookies associated with a domain whenever a request is made to that domain, regardless of the request's origin [S1]. Without specific validation that a request was intentionally triggered from the application's own user interface, the server cannot distinguish between a legitimate user action and a forged one.

Django CSRF Protection Mechanisms

Django provides a built-in defense system to mitigate these risks through middleware and template integration [S2].

Middleware Activation

The django.middleware.csrf.CsrfViewMiddleware is responsible for CSRF protection and is typically enabled by default [S2]. It must be positioned before any view middleware that assumes CSRF attacks have already been handled [S2].

Template Implementation

For any internal POST forms, developers must include the {% csrf_token %} tag inside the <form> element [S2]. This ensures that a unique, secret token is included in the request, which the server then validates against the user's session.

Token Leakage Risks

A critical implementation detail is that the {% csrf_token %} should never be included in forms targeting external URLs [S2]. Doing so would leak the secret CSRF token to a third party, potentially compromising the user's session security [S2].

Browser-Level Defense: SameSite Cookies

Modern browsers have introduced the SameSite attribute for the Set-Cookie header to provide a layer of defense-in-depth [S1].

  • Strict: The cookie is only sent in a first-party context, meaning the site in the URL bar matches the cookie's domain [S1].
  • Lax: The cookie is not sent on cross-site subrequests (such as images or frames) but is sent when a user navigates to the origin site, such as by following a standard link [S1].

How FixVibe tests for it

FixVibe now includes CSRF protection as a gated active check. After domain verification, active.csrf-protection inspects discovered state-changing forms, checks for CSRF-token-shaped inputs and SameSite cookie signals, then attempts a low-impact forged-origin submission and only reports when the server accepts it. Cookie checks also flag weak SameSite attributes that reduce CSRF defense-in-depth.