Chekchi · POS va boshqaruv paneli

Xavfsizlik: sessiya, PIN va qurilma ulash

Do‘kon kassasi umumiy qurilma. Kuchli parol yetarli emas: sessiya muddati, rol chegarasi va qurilmani qayta chaqirib olish ham kerak.

2026-10-16 · Xavfsizlik · 5 daqiqa

Do‘kon kassasi umumiy qurilma. Kuchli parol yetarli emas: sessiya muddati, rol chegarasi va qurilmani qayta chaqirib olish ham kerak.

Do‘kon kassasi odatda bir necha xodim ishlatadigan umumiy qurilma. Shu sabab xavfsizlik savoli “parol qanchalik murakkab?” bilan tugamaydi. Kim qaysi ekranni ko‘rishi, sessiya qancha vaqt ochiq qolishi, qurilma yo‘qolsa nima bo‘lishi va xodim ishdan chiqsa kirish qanday yopilishi ham muhim. Chekchi’da bu chegaralar rol, sessiya va qurilma tokeni orqali ajratilgan.

Egasi va menejer parollari Argon2id bilan xeshlanadi; parolning o‘zi bazada saqlanmaydi. Login va PIN uchun urinishlar cheklangan: ketma-ket xatolardan keyin qisqa blok qo‘yiladi va har bir urinish auditga yoziladi. Menejer tasdig‘i kerak bo‘lgan amallarda login va parol qayta so‘raladi. Bu kassir ekranida turgan odamning bir tugma bilan qaytarish yoki chiqim qilishini to‘xtatadi.

Panel sessiyasi HttpOnly cookie orqali yuritiladi; POS access tokenini sessionStorage’da, opaque refresh tokenini localStorage’da, qurilma tokenini alohida saqlaydi. Access token 10 daqiqa amal qiladi; refresh 90 kun harakatsizlikda amal qiladi, umumiy sessiya 365 kunda tugaydi. Parol yoki PIN o‘zgarsa, eski sessiyalar bekor qilinadi; PIN o‘zgarganda kassir qurilmasi ham uziladi va yangi 8 xonali kod kerak bo‘ladi. Bu “eski telefonimda hali ham ochiq qolgan” holatini kamaytiradi. POS nginx API’ga panel cookie’sini uzatmaydi, ya’ni ikki ilova sessiyalari aralashmaydi.

Kassir qurilmasi 8 xonali kod bilan ulanadi: POS kodni ko‘rsatadi, egasi yoki menejer uni panelda xodimga kiritadi. Shundan keyin qurilma tokeni shu qurilmaga bog‘lanadi va kassir PIN bilan kiradi. Bitta xodimga bitta qurilma ulanadi; qurilma almashtirilsa, avval eskisi uzilishi kerak. Qurilma yo‘qolsa, panelda uzish kerak — shundan keyin o‘sha qurilmada PIN ishlamaydi. Kodni Telegram’da yuborish yoki ekranga yopishtirib qo‘yish xavfli.

Rollar yaratilgandan keyin o‘zgarmaydi. Kassir chegirma bera olmaydi, boshqa kassirning chekini o‘zgartira olmaydi va qaytarishni boshlay olmaydi. Qaytarish faqat egasi yoki menejerda, usul chekdagi to‘lovga mos bo‘lganda va idempotentlik kaliti bilan bajariladi. Bu chegaralar “kimdir xato bosdi” degan vaziyatda ham pul tarixini saqlab qoladi. Rolni vaqtincha “kattalashtirish” amaliyoti auditni ma’nosiz qiladi.

Tarmoq tomonida API tashqi internetga o‘zboshimchalik bilan ochilmasligi, HTTPS ishlatilishi va ma’lumotlar bazasi porti tashqariga chiqarilmasligi kerak. POS va panel orasidagi yo‘l aniq bo‘lishi, har bir API so‘rovi sessiya va rol bo‘yicha tekshirilishi shart. Rate limit faqat loginga emas, PIN, menejer tasdig‘i va qurilma ulashga ham qo‘llanilishi kerak. Bu himoya “hujumchi yo‘q” degani emas; u oddiy brute-force va takroriy urinishlarni sekinlashtiradi.

Kundalik odatlar ham muhim: PINni boshqalarga aytmaslik, ekranni tark etganda chiqish, yo‘qolgan qurilmani darhol uzish, zaxira nusxani shifrlangan tashqi diskda saqlash va shubhali kirishlarni auditdan ko‘rish. Zaxira faylida ham savdo, ham xodim ma’lumotlari bor; uni ochiq papkada yoki chatda saqlash xavfsizlikni buzadi. Xavfsizlik bir martalik sozlama emas, har smenada takrorlanadigan tartib.

Barcha maqolalar · Imkoniyatlar · Aloqa