Безбедност (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.