wiki:Security

Безбедност (Security)

Што е имплементирано

  • Хеширање на лозинки (bcrypt): при /api/register-student и /api/register-instructor се зачувува *_password_hash
  • Login со JWT: /api/login (type: "user" или "instructor", email, password). Одговор: {token, role}
  • JWT аутентикација: /api/book-class и /api/register-event читаат корисник од JWT ако е присутен, инаку користат userId од body
  • HTTP безбедносни заглавија: helmet().
  • Rate limit: на /api/login и register рути.
  • Побезбеден CORS: дозволени origin-и од .env (CORS_ORIGIN=http://localhost:3000).
  • Валидирање: основни проверки за email и должина на лозинка.

.env

JWT_SECRET=
CORS_ORIGIN=
RATE_LIMIT_WINDOW_MS=
RATE_LIMIT_MAX=
PORT=
JWT_EXPIRES=

Тест сценарија

1) Регистрација → лозинката се хешира. 2) Логирање:

POST /api/login
{ "type":"user", "email":"ana@example.com", "password":"<lozinka>" }

Одговор:

{ "success": true, "token": "<JWT>", "role": "user" }

3) Користење на токен:

  • Authorization: Bearer <JWT> при POST /api/book-class со { "classId": 7 }.

Забелешки

  • Сите SQL повици се параметризирани ($1,$2,...) → заштита од SQL injection.
  • Преостанува: HTTPS, посебни secrets, поконкретни CORS правила и валидирање, и по можност серверска сесија/рефреш токени.
Last modified 2 weeks ago Last modified on 09/30/25 22:03:49
Note: See TracWiki for help on using the wiki.