Sobes.tech
Junior

CSRF эмне?

sobes.tech AI

AIден жооп

CSRF (Cross-Site Request Forgery) — бул коркунучтуу чабуул түрү, анда зымсыз адам колдонуучуну веб-сайтта каалабаган аракеттерди жасоого мажбурлайт, ал сайтта колдонуучу мурда аутентификацияланган.

Чабуулдун негизги идеясы — зыяндуу сайт же каттоо каты билдирүү жиберет, ал браузер аркылуу автоматтык түрдө максаттуу сайтка жөнөтүлөт. Эгер колдонуучу максаттуу сайтта кирүүдө болсо, анын браузери cookies жиберет жана сураныч анын укуктары менен ишке ашырылат.

Мисалы, бул пароль өзгөртүү, акча которуу же аккаунтту өчүрүү суранычтары болушу мүмкүн.

CSRFден коргоо үчүн ар кандай ыкмалар колдонулат:

  • CSRF-токендер: Ар бир сураныч үчүн уникалдуу жана сырдуу токендер, алар сервер тарабынан түзүлүп, ар бир форма же AJAX сураныч менен жөнөтүлөт. Сервер алынган токендин тууралыгын текшерет.
  • SameSite cookie атрибуту: Cookie серверге жөнөтүлгөндө, ал ошол доменден келген суранычтарда гана жөнөтүлөт деген эрежени белгилейт.
  • Origin жана Referer башталыштарын текшерүү: Сервер сураныч кайдан келгенин текшерет. Бирок, бул башталыштарды зымсыз адам өзгөртүшү мүмкүн же кээ бир учурларда жок болушу мүмкүн.
  • Критикалык аракеттер үчүн кайра аутентификация талап кылуу: маанилүү операцияларды аткаруудан мурун паролду киргизүү суранычын талап кылуу.

Эң натыйжалуу жана кеңири колдонулган ыкма — CSRF-токендерди колдонуу.

// CSRF-токенди формага кошуу мисалы
<form action="/transfer" method="POST">
  <input type="hidden" name="_csrf_token" value="сервер тарабынан түзүлгөн токен">
  <input type="number" name="amount">
  <button type="submit">Көчүрүү</button>
</form>
// Серверде CSRF-токенди текшерүү мисалы (Node.js менен Express)
app.post('/transfer', csrfProtection, (req, res) => {
  // Токен ийгиликтүү текшерилгени кийин сураныч иштетилет
});