
- Python
- FastAPI
- Docker
- Xavfsizlik
Dollar belgisi parolni buzdi
27
Bugun kino botini boshidan oxirigacha yig'dim: bot, admin ilovasi va joylashtirish.
Bot obuna asosida ishlaydi — foydalanuvchi to'lov qiladi, admin tasdiqlaydi, keyin kino kodlari orqali kino oladi. Admin uchun alohida ilova qildim, chunki tarif narxlari va karta raqamini o'zgartirish uchun har safar kodga kirish yaxshi emas. Endi ular bazadan o'qiladi va admin ilovasidan tahrirlanadi.
Kun oxirida ancha vaqt olgan xato bo'ldi. Admin paroli xesh ko'rinishida sozlama faylida saqlanadi. Xeshni yaratdim, faylga yozdim, kirishga urinaman — ishlamaydi. Xeshni qayta yaratdim — yana ishlamaydi.
Sabab: bcrypt xeshi ichida `$` belgisi bor, va u bir necha marta uchraydi. Sozlama fayli o'qilganda esa `$` belgisi maxsus ma'noga ega — undan keyingi matn o'zgaruvchi nomi deb qabul qilinadi. Natijada dasturga xeshning buzilgan qismi yetib borardi.
Yechim: xesh ichidagi ajratgichni `$` dan `:` ga o'zgartirdim. Endi sozlama faylida hech qanday maxsus belgi yo'q va xesh butun holicha yetib boradi.
Bu xatoning yoqimsiz tomoni shunda ediki, xato xabari "parol noto'g'ri" deb turardi — ya'ni meni butunlay noto'g'ri tomonga yo'naltirardi. Parol to'g'ri edi, uni saqlash usuli noto'g'ri edi.
Oxirida hammasini Docker'ga joyladim va serverga chiqardim.