Uy Oldini olish Optik salonlar, oftalmologiya klinikalari, kontaktlarni tuzatish xonalari uchun universal dasturiy ta'minot. Optik salonlar, oftalmologiya klinikalari, kontaktlarni tuzatish xonalari uchun universal dasturiy ta'minot.

Optik salonlar, oftalmologiya klinikalari, kontaktlarni tuzatish xonalari uchun universal dasturiy ta'minot. Optik salonlar, oftalmologiya klinikalari, kontaktlarni tuzatish xonalari uchun universal dasturiy ta'minot.

Optik salonlar, oftalmologiya klinikalari, QC ofislari va oftalmologlar uchun maxsus mo'ljallangan universal dasturiy ta'minot.
Optik salonlar va oftalmologlar uchun ishning sifat jihatidan yangi darajasi.

Kompyuter dasturi "ARMO plus"

(Tibbiy hisob va savdo)

  • Barcha ish joylari va filiallarda mijozlarning yagona fayli.
  • Chegirmalarning moslashuvchan tizimi, diskont kartalari bilan ishlash.
  • Ulgurji va chakana savdo, ko'zoynak ishlab chiqarish va ta'mirlash xizmatlari, tibbiy xizmatlarni yuritish va hisobga olish.
  • Shtrix-kod skaneri orqali kodlardan foydalanib, ma'lumotlarni ism bo'yicha tezda kiriting va qidiring.
  • Shablonlar yordamida tovarlarni etkazib berish bo'yicha so'rovlarni optimallashtirish. Inventarizatsiyani minimallashtirish.
  • Tibbiy ko'rik ma'lumotlarini avtomatik kiritish va tibbiy yozuvlarni yaratish.
  • Retseptlar berish va ko'zoynak buyurtmalarini shakllantirishni avtomatlashtirish. Shifokor va magistr xizmatlarini hisobga olish.
  • Mijozlarni konsultatsiya uchrashuviga yoki rejalashtirilgan ob'ektiv almashtirishga taklif qilish uchun SMS-xabarlar yordamida tezkor ma'lumotni maqsadli yetkazib berish; kompaniya aktsiyalari to'g'risida ma'lumot berish.
  • Naqd pul va tovarlar harakati, mijozlar oqimi, xodimlarning ishi, moliyaviy natijalar bo'yicha qisqacha va batafsil hisobotlar.
  • 1C: Buxgalteriya hisobi, onlayn-do'kon va boshqa dasturlarda keyingi foydalanish uchun ma'lumotlarni yuklab olish imkoniyati.
  • Xodimlarning individual faoliyatini nazorat qilish (sotish, imtihonlarga yo'llanmalar, mijozlarga chegirmalar berish va hk).
  • Dastur funksiyalariga foydalanuvchi ruxsatini sozlash.
  • Masofaviy ish stantsiyalari (filiallar) o'rtasida avtomatlashtirilgan ma'lumotlar almashinuvi.
  • Ruxsatsiz kirish va ma'lumotlarni nusxalashdan yuqori darajadagi himoya. Ma'lumotlar bazasini avtomatik arxivlash.

"ARMO plus" - tarqatilgan ma'lumotlar bazasi texnologiyalaridan foydalanadigan tizim

Avtomatlashtirish uchun mo'ljallangan:

Ulgurji va chakana savdoni amalga oshirish;

Tovarlarni etkazib berish, ish joylarida tovarlar va qolgan tovarlarning harakatlanishini nazorat qilish uchun arizalar;

Mijozning elektron faylini oftalmologik tekshiruvlar ma'lumotlari, konsultativ tekshiruvlar kundaliklari, ko'zoynak uchun retseptlar va buyurtmalar berish;

Tibbiy ko'rik ma'lumotlarini shakllantirish va chop etish;

Naqd pul va tovarlar harakati, mijozlar oqimi va ularning so'rovlari natijalari bo'yicha hisobotlarni yaratish.

Ishonchli va xavfsiz ishlashni tashkil qilish uchun dastur foydalanuvchi huquqlarini va ularning ma'lumotlarga kirishini belgilaydigan rollarga bo'linishni ta'minlaydi. Texnologiyalar tarqatilgan ma'lumotlar bazasi olib borishga imkon beradi optik do'konlar va oftalmologiya kabinetlari tarmog'ining ishlashi.

Kataloglar va hujjatlar

Ma'lumotlarni saqlash va tizimlashtirish, hujjatlarni, hisobotlarni, bemor fayllarini va hokazolarni tezda to'ldirish uchun. taqdim etilgan ma'lumotnomalar. Kataloglar qulay interfeysga ega va ular bilan ishlash intuitivdir Yordamida hujjatlar xo'jalik va moliyaviy operatsiyalar to'g'risidagi ma'lumotlar kiritiladi, tovarlarga so'rovlar kiritiladi, balanslar kiritiladi Kataloglar va hujjatlarga kirish dastur ma'muri tomonidan belgilanadi,foydalanuvchilarga maxsus "huquqlar" berish

Turli operatsiyalarni bir vaqtning o'zida bajarish imkoniyati

Mijoz fayli

ARMO Plus-da texnik xizmat ko'rsatish alohida rol o'ynaydielektron mijoz fayli. Mijozning yagona faylida birlamchi ma'lumotlar, anamnez, diagnostika, tashriflar, tekshiruvlar va oftalmologik tekshiruvlar kundaliklari, retseptlar, ko'zoynak buyurtmalari, xaridlar to'g'risidagi ma'lumotlar, mijozning arizalari va avanslari to'g'risidagi ma'lumotlar mavjud. Dastur sotuvlar, mijozlarning buyurtmalari va so'rovlari bo'yicha hisobotlarni, oftalmologik tekshiruvlardan ko'chirmalarni ishlab chiqaradi. Mijozlar uchun moslashuvchan chegirma sxemasi o'rnatiladi. SMS va elektron pochta xabarlari orqali xabar berish tizimi mavjud.


ARMO Plus-dagi asosiy hisobotlar

  • daromadlar, xarajatlar, qoldiqlar, aylanmalar to'g'risidagi umumiy va batafsil hisobotlar
  • daromad hisobotlari
  • hujjatlar va fayllar bo'yicha oldindan hisobotlar
  • iste'mol qilinadigan narxlarni nazorat qilish bo'yicha hisobotlar
  • ko'zoynak uchun arizalar va buyurtmalar bo'yicha hisobotlar
  • saqlash muddati haqida hisobot
  • hujjat hisobotlari
  • mijozlar haqida hisobotlar, kutilayotgan tashriflar, mijoz manbalari
  • mijozlar chegirmalari hisobotlari
  • xodimlar haqida qisqacha va batafsil hisobotlar

Buxgalteriya hisobi va tahlil funktsiyalariga qo'shimcha ravishda hisobotlar xodimlarning ishini, savdo va mijozlar oqimini kuzatish uchun ishlatiladi.

Tarqalgan ma'lumotlar bazasi va ma'lumotlar almashinuvi

Taqsimlangan ma'lumotlar bazasi texnologiyasi geografik jihatdan uzoqda joylashgan optiklar, oftalmologiya bo'limlari va filiallarning ishlashiga imkon beradi. Ma'lumotlar bir-biriga elektron almashinuv paketlari orqali uzatiladi. Shu sababli, ma'lumotlarni sinxronlashtirish masofaviy ish stantsiyalarida amalga oshiriladi. U shunday shakllanadi yagona bemor fayli va ma'lumotnoma va hujjatli ma'lumotlar bazasi ARMO Plus bilan ishlaydigan firmalar bir-birlari bilan elektron shaklda ma'lumot almashishlari mumkin.


Ma'lumotlar bazasini boshqarish xizmati

Ishlashning ishonchliligi yordamida ta'minlanadi saqlash Ma'lumotlar bazasi Saqlangan ma'lumotlar har doim bo'lishi mumkin tiklash. Ma'lumotlar bazasini siqish uchun ma'lumotlarni tushirish va tozalash ta'minlanadi. ARMO plus mumkin ma'lumotlarni 1C: Enterprise dasturiga, Excelga, onlayn-do'konga yuklang.

Joomla'da muvaffaqiyatli ro'yxatdan o'tgandan so'ng, foydalanuvchilar sukut bo'yicha a ga yo'naltiriladi kirish sahifasi(agar hisobni faollashtirish kerak bo'lmasa) U yerdan (kirishdan keyin) foydalanuvchilar foydalanuvchi profili sahifa. Bu sizda Login Redirection boshqa biror narsaga o'rnatilgan bo'lsa ham sodir bo'ladi Kirish formasi moduli.

Ushbu xatti-harakatni o'zgartirish uchun siz ro'yxatdan o'tganingizdan so'ng foydalanuvchilarni veb-saytingizning istalgan boshqa sahifasiga yo'naltirishingiz mumkin.
Buning uchun siz asosiy Joomla faylini tahrirlashingiz kerak. O'zgartirishlaringiz Joomla yangilanishi orqali yozilishi mumkinligini yodda tuting. Joomla-ning asosiy fayllariga kiritilgan o'zgarishlarni har doim hujjatlashtiring, shunda kerak bo'lganda ularni tezda qayta bajarishingiz mumkin.

Faylni ochish:
komponentlar/com_users/controllers/registration.php

Eng pastgacha pastga aylantiring. Boshlang'ich qator 162 yoki shunga o'xshash sizda oqimli kod bo'ladi:

if ($return === "adminactivate" ) ( $this -> setMessage (JText:: _() ) ; $this -> setRedirect (JRoute:: _(, false ) ) ; ) else if ($return == = "useractivate" ) ( $this -> setMessage (JText::_() ); $this -> setRedirect (JRoute::_() "index.php?option=com_users&view=registration&layout=complete", noto'g'ri ); ) else ( $this -> setMessage (JText::_() ); $this -> setRedirect (JRoute::_() "index.php?option=com_users&view=login", noto'g'ri ); )

Ushbu bo'limda sizda index.php dan boshlanadigan 3 ta havola mavjud?

  • Birinchisi () foydalanuvchi ro'yxatdan o'tgandan so'ng amalga oshiriladi, agar hisob ma'mur tomonidan faollashtirilgan bo'lsa
  • Ikkinchi ( index.php?option=com_users&view=registration&layout=complete), agar hisob foydalanuvchi tomonidan faollashtirilgan bo'lsa
  • Uchinchi ( index.php?option=com_users&view=login), agar hisobni faollashtirish talab qilinmasa.

Foydalanadigan roʻyxatdan oʻtish turiga qarab havolalarni qayta yoʻnaltirish sahifangizning TOʻLIQ URL manzili bilan almashtiring va ish tugadi.
Misol uchun, agar mening veb-saytimdagi foydalanuvchini faollashtirish talab qilinmasa va men ro'yxatdan o'tgandan so'ng foydalanuvchilarni qayta yo'naltirmoqchi bo'lsam http://www.mywebsite.com/welcome-reg yangilangan kod quyidagicha bo'ladi:

// Profil ekraniga yo'naltirish. if ($return === "adminactivate" ) ( $this -> setMessage (JText::_() "COM_USERS_REGISTRATION_TO'LIQ_TASHQARLASH") ; $this -> setRedirect(JRoute::_( "index.php?option=com_users&view=registration&layout=complete", noto'g'ri ); ) else if ($return === "useractivate" ) ( $this -> setMessage (JText::_() “COM_USERS_REGISTRATION_COMPLETE_ACTIVATE”) ; $this -> setRedirect(JRoute::_( "index.php?option=com_users&view=registration&layout=complete", noto'g'ri ); ) else ( $this -> setMessage (JText::_() “COM_USERS_REGISTRATION_SAVE_SUCCESS”) ; $this -> setRedirect(JRoute::_( "http://www.mywebsite.com/welcome-reg" , noto'g'ri ); )

Veb-saytingizning qaysi sahifasiga yo'naltirishingizdan qat'i nazar, tizim xabari " Roʻyxatdan oʻtganingiz uchun tashakkur..." hali ham ko'rsatiladi. Agar siz bu xabarni xohlamasangiz, qayta yo'naltirish URL manzili ustidagi to'liq qatorni olib tashlang. masalan. $this->setMessage(JText::_("COM_USERS_REGISTRATION_SAVE_SUCCESS"));

Agar siz hisobni faollashtirishni talab qilmasangiz (Yangi foydalanuvchi hisobini faollashtirish Yo'q) bu foydalanuvchi profili sahifasidan qochish uchun kerak bo'lgan narsadir. Biroq, agar foydalanuvchi elektron pochta orqali hisobni faollashtirishi kerak bo'lsa (Hisobni faollashtirish O'zini) bu etarli bo'lmasligi mumkin. Ro'yxatdan o'tgandan so'ng darhol foydalanuvchi kutilganidek kodda ko'rsatilgan veb-sahifaga yo'naltiriladi. Biroq, foydalanuvchi faollashtirish elektron pochtasidagi havolani bosganida, ular avval aytib o'tilgan login formasiga o'tadi va agar u tizimga kirish uchun foydalansa, u foydalanuvchi profili sahifasiga o'tadi. Buning oldini olish uchun foydalanuvchi profili sahifasini butunlay oʻchirib qoʻyishingiz va oʻrniga foydalanuvchilarni oʻzingiz yoqtirgan sahifaga yoʻnaltirishingiz mumkin. Qanday qilib buni bilish uchun ushbu maqolani o'qing.

Joomla 1.6
Joomla 1.7
Joomla 2.5

Bugun biz oktabr oyi oxirida internetda portlagan mashhur CMS Joomla’da 1 kunlik muhim zaiflikdan foydalanishni ko‘rib chiqamiz. Biz raqamlar bilan zaifliklar haqida gaplashamiz CVE-2016-8869, CVE-2016-8870 Va CVE-2016-9081. Uchalasi ham besh yil davomida ramkaning tubida qolib, qanotlarda kutib turgan bir kod parchasidan kelib chiqadi, shundan keyingina ozod bo'lib, o'zi bilan tartibsizlik, buzilgan saytlar va ushbu Joomla-ning begunoh foydalanuvchilarining ko'z yoshlarini olib keladi. Faqat monitorlarning yorug'ligidan ko'zlari qizarib ketgan va klaviaturalari non bo'laklari bilan to'ldirilgan eng jasur va jasur ishlab chiquvchilar g'azablangan yovuz ruhlarga qarshi tura oldilar va boshlarini tuzatish qurbongohiga qo'ydilar.

OGOHLANTIRISH

Barcha ma'lumotlar faqat ma'lumot olish uchun taqdim etiladi. Na muharrirlar, na muallif ushbu maqola materiallaridan kelib chiqishi mumkin bo'lgan har qanday zarar uchun javobgar emas.

Hammasi qaerdan boshlangan

2016-yil 6-oktabrda Demis Palma Stack Exchange-da mavzu yaratdi, unda u savol berdi: nima uchun aslida Joomla 3.6 versiyasida bir xil nomli registr() bilan foydalanuvchilarni ro‘yxatdan o‘tkazishning ikkita usuli bor? Birinchisi UsersControllerRegistration boshqaruvchisida, ikkinchisi UsersControllerUser kontrollerida. Damis qayerdadir UsersControllerUser::register() usuli ishlatilganmi yoki bu eski mantiqdan qolgan evolyutsion anaxronizmmi bilmoqchi edi. Uning tashvishi shundaki, agar bu usul hech qanday ko'rinish tomonidan qo'llanilmasa ham, uni tayyorlangan so'rov orqali chaqirish mumkin edi. Men itoctopus taxallusi ostida ishlab chiquvchidan javob oldim, u tasdiqladi: muammo haqiqatan ham mavjud. Va Joomla dasturchilariga hisobot yubordi.

Keyin voqealar eng tez rivojlandi. 18-oktabr kuni Joomla ishlab chiquvchilari Damisning hisobotini qabul qilishdi, u o‘sha vaqtga kelib foydalanuvchilarni ro‘yxatdan o‘tkazish imkonini beruvchi PoC loyihasini ishlab chiqqan edi. U o'z veb-saytida eslatmani e'lon qildi, unda u topilgan muammo va bu boradagi fikrlari haqida umumiy ma'noda gapirdi. Shu kuni Joomla 3.6.3 ning yangi versiyasi chiqdi, unda hali ham zaif kod mavjud.

Shundan so'ng Davide Tampellini xatoni oddiy foydalanuvchini emas, balki ma'murni ro'yxatdan o'tkazish nuqtasiga aylantiradi. Va 21 oktyabr kuni Joomla xavfsizlik guruhiga yangi ish keladi. Bu allaqachon imtiyozlarni oshirish haqida gapiradi. Shu kuni Joomla veb-saytida 25-oktabr, seshanba kuni tizim yadrosidagi muhim zaiflikni tuzatuvchi 3.6.3 seriya raqamiga ega navbatdagi versiya chiqarilishi haqida e’lon paydo bo‘ldi.

25 oktyabr Joomla Security Strike Team Damis tomonidan topilgan kod bo'lagi tomonidan yaratilgan so'nggi muammoni topdi. Keyin 21-oktabrdagi ko‘zga ko‘rinmas nomli Prepare 3.6.4 Stabil Release nomli majburiyat rasmiy Joomla omborining asosiy bo‘limiga yuboriladi, bu noxush xatoni tuzatadi.

Bu chiqqandan so'ng, ko'plab manfaatdor shaxslar dasturchilar hamjamiyatiga qo'shilishadi - ular zaiflikni targ'ib qilishni va ekspluatatsiyalarni tayyorlashni boshlaydilar.

27-oktabrda tadqiqotchi Garri Roberts Xiphos Research omboriga PHP faylini zaif CMSga ega serverga yuklay oladigan tayyor ekspluatatsiyani yukladi.

Tafsilotlar

Xo'sh, fon tugadi, keling, eng qiziqarli qismga - zaiflikni tahlil qilishga o'tamiz. Men Joomla 3.6.3 ni sinov versiyasi sifatida o'rnatdim, shuning uchun barcha qator raqamlari ushbu versiya uchun tegishli bo'ladi. Va siz quyida ko'radigan fayllarning barcha yo'llari o'rnatilgan CMS ildiziga nisbatan ko'rsatiladi.

Damis Palmaning kashfiyoti tufayli biz tizimda foydalanuvchi ro'yxatini amalga oshiradigan ikkita usul mavjudligini bilamiz. Birinchisi CMS tomonidan qo'llaniladi va /components/com_users/controllers/registration.php:108 faylida joylashgan. Ikkinchisi (biz qo'ng'iroq qilishimiz kerak bo'lgan) /components/com_users/controllers/user.php:293 da yashaydi. Keling, buni batafsil ko'rib chiqaylik.

286: /** 287: * Foydalanuvchini ro'yxatdan o'tkazish usuli. 288: * 289: * @return boolean 290: * 291: * @1.6 dan beri 292: */ 293: umumiy funksiya registr() 294: ( 295: JSession::checkToken("post") yoki jexit(JText::_ ("JINVALID_TOKEN")); ... 300: // Shakl ma'lumotlarini oling. 301: $data = $this->input->post->get("user", array(), "array"); . .. 315: $return = $model->validate($form, $data); 316: 317: // Xatolarni tekshiring. 318: agar ($return === false) 319: ( ... 345: / / Ro'yxatdan o'tishni tugating 346: $return = $model->register($data);

Bu erda men faqat qiziqarli satrlarni qoldirdim. Zaif usulning to'liq versiyasini Joomla omborida ko'rish mumkin.

Keling, oddiy foydalanuvchi ro'yxatga olish paytida nima sodir bo'lishini aniqlaylik: qanday ma'lumotlar yuboriladi va ular qanday qayta ishlanadi. Agar sozlamalarda foydalanuvchini roʻyxatdan oʻtkazish yoqilgan boʻlsa, shaklni http://joomla.local/index.php/component/users/?view=registration sahifasida topish mumkin.


Qonuniy foydalanuvchini ro'yxatdan o'tkazish so'rovi quyidagi skrinshotga o'xshaydi.


com_users komponenti foydalanuvchilar bilan ishlash uchun javobgardir. So'rovdagi vazifa parametriga e'tibor bering. U $controller.$method formatiga ega. Keling, fayl tuzilishini ko'rib chiqaylik.

Jilddagi skriptlarning nomlari kontrollerlar chaqirilgan kontrollerlarning nomlariga mos keladi. Bizning so'rovimiz hozirda $controller = "registration" ni o'z ichiga olganligi sababli, fayl chaqiriladi register.php va uning registr() usuli.

Diqqat, savol: ro'yxatga olish jarayonini kodning zaif joyiga qanday o'tkazish kerak? Ehtimol, siz allaqachon taxmin qilgansiz. Zaif va haqiqiy usullarning nomlari bir xil (ro'yxatga olish), shuning uchun biz chaqirilgan kontroller nomini o'zgartirishimiz kerak. Bizning zaif boshqaruvchimiz qayerda joylashgan? To'g'ri, faylda user.php. Ma'lum bo'lishicha, $controller = "user" . Har bir narsani birlashtirib, biz vazifa = user.register olamiz. Endi ro'yxatga olish so'rovi bizga kerak bo'lgan usul bilan qayta ishlanadi.


Biz qilishimiz kerak bo'lgan ikkinchi narsa - ma'lumotlarni to'g'ri formatda yuborish. Bu erda hamma narsa oddiy. Legitimate register() bizdan jform nomli massivni kutadi, unda biz ro'yxatdan o'tish ma'lumotlarini - ism, login, parol, elektron pochtani o'tkazamiz (so'rov bilan skrinshotga qarang).

  • /components/com_users/controllers/registration.php: 124: // Foydalanuvchi ma'lumotlarini oling. 125: $requestData = $this->input->post->get("jform", array(), "massiv");

Bizning mijozimiz ushbu ma'lumotlarni foydalanuvchi deb nomlangan massivdan oladi.

  • /components/com_users/controllers/user.php: 301: // Shakl ma'lumotlarini oling. 302: $data = $this->input->post->get("foydalanuvchi", array(), "massiv");

Shuning uchun biz so'rovdagi barcha parametrlarning nomlarini jfrom dan user ga o'zgartiramiz.

Bizning uchinchi qadamimiz yaroqli CSRF tokenini topishdir, chunki usiz ro'yxatdan o'tish bo'lmaydi.

  • /components/com_users/controllers/user.php: 296: JSession::checkToken("post") yoki jexit(JText::_("JINVALID_TOKEN"));

Bu MD5 xeshiga o'xshaydi va siz uni, masalan, /index.php/component/users/?view=login saytidagi avtorizatsiya shaklidan olishingiz mumkin.


Endi siz kerakli usul yordamida foydalanuvchilarni yaratishingiz mumkin. Agar hamma narsa muvaffaqiyatli bo'lsa, tabriklaymiz - siz zaiflikdan foydalangansiz CVE-2016-8870"Yangi foydalanuvchilarni ro'yxatdan o'tkazish uchun ruxsatnoma tekshiruvi etishmayapti."

UsersControllerRegistration kontrolleridagi "ishchi" registr() usulida u shunday ko'rinadi:

  • /components/com_users/controllers/registration.php: 113: // Agar ro'yxatdan o'tish o'chirilgan bo'lsa - Kirish sahifasiga yo'naltirish. 114: agar (JComponentHelper::getParams("com_users")->get("allowUserRegistration") == 0) 115: ( 116: $this->setRedirect(JRoute::_("index.php?option=com_users&view=" login", noto'g'ri); 117: 118: noto'g'ri; 119: )

Va shuning uchun zaiflarda:

  • /components/com_users/controllers/user.php:

Ha, yo'q.

Ikkinchi, ancha jiddiy muammoni tushunish uchun keling, biz yaratgan so'rovni yuboramiz va kodning turli qismlarida qanday bajarilishini ko'rib chiqamiz. Ishchi usulida foydalanuvchi tomonidan taqdim etilgan ma'lumotlarni tekshirish uchun mas'ul bo'lgan qism:

Davom etish faqat a'zolar uchun mavjud

Variant 1. Saytdagi barcha materiallarni o'qish uchun "sayt" hamjamiyatiga qo'shiling

Belgilangan muddat ichida hamjamiyatga a'zolik sizga BARCHA Hacker materiallariga kirish imkonini beradi, shaxsiy jami chegirmangizni oshiradi va professional Xakep Score reytingini to'plash imkonini beradi!



Saytda yangi

>

Eng mashhur