Skip to content

Ogimarinski/Telebid-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌐 Custom Node.js Web Server with Authentication & Captcha

Този проект представлява пълнофункционален уеб сървър, изграден изцяло с Vanilla Node.js (без външни фреймуоркове като Express).
Системата включва регистрация, вход, защитено управление на сесии и сигурност.


🚀 Използвани технологии

Backend

  • Node.js: Основна среда за изпълнение
  • SQL (MySQL): За съхранение на потребителски данни и активни сесии

Вградени Node.js модули

  • http: Създаване на сървъра и ниско ниво на обработка на заявките
  • fs (File System): Четене и сервиране на статични файлове
  • path: Коректно управление на пътища между файловете
  • url: Парсване на URL адреси и параметри от заявките

Външни зависимости

  • dotenv: Сигурно съхранение на конфигурации (Environment Variables)
  • mysql2: Асинхронна комуникация с базата данни

🛠️ Функционалности

1️⃣ Ръчна маршрутизация (Custom Routing)

  • Обработката на всички GET и POST заявки се извършва чрез директни проверки на req.method и parsedUrl.pathname.
  • Не се използват готови рутери или външни библиотеки.

2️⃣ Автентикация и сесии

  • Уникални сесии: Генерират се чрез utils.generateSessionId().
  • Валидация на сесията: Проверява се при всяка защитена заявка чрез базата данни.
  • Login/Logout
    • Login: Проверява данните чрез utils.validateUsername() и utils.validatePassword(). Ако данните са валидни, се създава нова сесия.
    • Logout: Изтрива сесията от базата и премахва cookie от клиента.
  • Сигурност: Сесийните cookies са HttpOnly, за защита срещу XSS.

3️⃣ Сигурност (Security)

  • Хеширане на пароли: Всички пароли се обработват чрез SHA-256.
  • CAPTCHA система: Интегрирана SVG капча за регистрация, която защитава от автоматизирани ботове.
    • Кодовете имат ограничено време на валидност (TTL).
  • Валидация на входни данни:
    • utils.validateUsername(username) – проверка на потребителско име.
    • utils.validatePassword(password) – проверка на парола.
    • utils.validateCaptcha(captchaInput, sessionId) – проверка на CAPTCHA.

4️⃣ Потребителски профил

  • API ендпоинти за извличане на информация за профила.
  • Промяна на имена и парола:
    • Данните се валидират чрез utils функции преди запис в базата.
  • Защитени действия: Изискват валидна сесия.

Готови функции

  • generateCaptcha в utils.js
  • createMockReqRes в server.test.js

📂 Структура на проекта

  • src/:
    • server.js - Основен сървърен файл и входна точка
    • db.js - Логика за връзка с базата данни
    • utils.js - Помощни функции за сигурност и валидация
  • public/ - Статични ресурси (HTML, CSS, JS)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors