Безбедност (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
4 weeks ago
Last modified on 09/30/25 22:03:49
Note:
See TracWiki
for help on using the wiki.
