💡 Backend proqramlarda @ simvolu olan parollar niyə problem yaradır?
Bəzən backend tətbiqlərdə – istər Node.js, istər Python, Java, PHP və ya digər texnologiyalarla işlənmiş sistemlərdə – verilənlər bazası (DB) və ya SMTP kimi xidmətlərə bağlantı qurarkən @ simvolu olan parollardan istifadə olunur. Məsələn: Abc@123.
Hər şey düzgün görünsə də, bəzi hallarda bu tip parollar bağlantı xətalarına səbəb ola bilər.
📌 Niyə belə olur?
Çünki bir çox xidmətlərə bağlantı URI formatında connection string vasitəsilə qurulur. Bu URI formatlarında @, :, /, ?, # kimi simvolların xüsusi texniki mənası var.
Misal üçün, @ simvolu URI-də istifadəçi məlumatı ilə host hissəsini ayırmaq üçün istifadə olunur. Əgər parolun içində də @ varsa və bu encode olunmayıbsa, sistem parolu və host hissəsini səhv anlayır.
📨 Nodemailer nümunəsi
Bu problem SMTP konfiqurasiyalarında da ortaya çıxa bilər. Məsələn, nodemailer kitabxanası ilə email göndərərkən:
- Əgər parol obyekt şəklində
auth.passkimi verilibsə – problem olmur. - Amma connection string (
smtps://user:pass@host) istifadə olunursa və parolda@varsa – mütləq encode edilməlidir (@→%40), əks halda bağlantı uğursuz olur.
🔍 Bu problem kimləri təsir edir?
✅ Node.js ✅ Python (Django, Flask) ✅ Java (Spring Boot) ✅ PHP (Laravel və s.) ✅ Go, Ruby və digər backend dilləri
Qısacası, connection string istifadə olunan bütün mühitlərdə bu problem yarana bilər.
✅ Nə etməli?
- Parollarınızda xüsusi simvollar varsa, URI-yə daxil etməzdən əvvəl encode edilməlidir.
- Mümkünsə, URI əvəzinə istifadəçi adı və parol kimi parametrləri ayrı-ayrı dəyişənlər şəklində istifadə edin.
- Həmişə konfiqurasiya fayllarını yoxlayarkən parol daxilində xüsusi simvolların təhlilinə diqqət yetirin.
🧠 Nəticə
Sadə görünən bu detal production mühitində tapılması çətin, ancaq kritik xətalara səbəb ola bilər. Sistem işləmədikdə problem bağlantı parametrlərində ola bilər – xüsusilə də parol daxilindəki @ və digər simvollarda.
#BackendDevelopment #Nodejs #Security #ConnectionString #URLEncoding #SMTP #Nodemailer #SoftwareEngineering #DevTips #DeveloperExperience #ProductionReady