💡 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.pass
kimi 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