Оптикалық салондарға, офтальмологиялық клиникаларға, контактілерді түзету кабинеттеріне арналған әмбебап бағдарламалық қамтамасыз ету. Оптикалық салондарға, офтальмологиялық емханаларға, контактілерді түзету кабинеттеріне арналған әмбебап бағдарламалық қамтамасыз ету Компьютерлік бағдарлама

Joomla-да сәтті тіркелгеннен кейін пайдаланушылар әдепкі бойынша a кіру беті(егер тіркелгіні белсендіру қажет болмаса) Сол жерден (кіргеннен кейін) пайдаланушылар келесіге қайта бағытталады. пайдаланушы профилібет. Бұл сізде Жүйеге қайта бағыттау басқа нәрсеге орнатылған болса да орын алады Жүйеге кіру пішіні модулі.

Бұл әрекетті өзгерту үшін тіркелгеннен кейін пайдаланушыларды веб-сайтыңыздағы кез келген басқа бетке қайта бағыттай аласыз.
Ол үшін негізгі Joomla файлын өңдеу керек. Өзгерістердің Joomla жаңартуы арқылы қайта жазылуы мүмкін екенін ескеріңіз. Қажет болса, оларды жылдам қайта жасау үшін негізгі Joomla файлдарына жасаған өзгерістерді әрқашан құжаттаңыз.

Файлды ашу:
components/com_users/controlers/registration.php

Ең төменгі жағына қарай айналдырыңыз. Бастапқы жол 162 немесе сізде ағынды код болады:

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", жалған ); ) else ( $this -> setMessage (JText::_() ); $this -> setRedirect (JRoute::_() "index.php?option=com_users&view=login", жалған ); )

Бұл бөлімде index.php басталатын 3 сілтеме бар ма?

  • Біріншісі () тіркелгіні әкімші іске қосу керек болса, пайдаланушы тіркелгеннен кейін орындалады
  • Екінші ( index.php?option=com_users&view=registration&layout=complete), тіркелгіні пайдаланушы белсендіру керек болса
  • Үшінші ( index.php?option=com_users&view=login), тіркелгіні белсендіру қажет болмаса.

Сіз пайдаланатын тіркеу түріне байланысты сілтемелерді қайта бағыттау бетінің ТОЛЫҚ URL мекенжайымен ауыстырыңыз және сіз аяқтадыңыз.
Мысалы, егер менің веб-сайтымда пайдаланушыны белсендіру қажет болмаса және мен тіркелгеннен кейін пайдаланушыларды қайта бағыттағым келсе http://www.mywebsite.com/welcome-regжаңартылған код келесідей болады:

// Профиль экранына қайта бағыттау. if ($return === "adminactivate" ) ( $this -> setMessage (JText::_() "COM_USERS_REGISTRATION_COMPLETE_REIFY"); $this -> setRedirect(JRoute::_( "index.php?option=com_users&view=registration&layout=complete", жалған ); ) else if ($return === "useractivate" ) ( $this -> setMessage (JText::_() "COM_USERS_REGISTRATION_COMPLETE_ACTIVATE"); $this -> setRedirect(JRoute::_( "index.php?option=com_users&view=registration&layout=complete", жалған ); ) басқа ( $this -> setMessage (JText::_( "COM_USERS_REGISTRATION_SAVE_SUCCESS"); $this -> setRedirect(JRoute::_( "http://www.mywebsite.com/welcome-reg" , жалған ); )

Веб-сайтыңыздың қай бетіне қайта бағыттағаныңызға қарамастан, жүйелік хабарлама " Тіркелгеніңізге рахмет..." әлі де көрсетіледі. Бұл хабарды қаламасаңыз, қайта бағыттау URL мекенжайының үстіндегі толық жолды алып тастаңыз. мысалы $this->setMessage(JText::_("COM_USERS_REGISTRATION_SAVE_SUCCESS"));

Есептік жазбаны белсендіру қажет болмаса (Жаңа пайдаланушы тіркелгісін белсендіру параметрі Жоқ) бұл пайдаланушы профилі бетінен аулақ болу үшін қажет нәрсе. Дегенмен, егер пайдаланушы тіркелгіні электрондық пошта арқылы белсендіру керек болса (Есептік жазбаны белсендіру Өздігінен) бұл жеткіліксіз болуы мүмкін. Тіркелгеннен кейін пайдаланушы күткендей кодта берілген веб-бетке қайта бағытталады. Дегенмен, пайдаланушы белсендіру электрондық поштасындағы сілтемені басқанда, олар бұрын айтылған кіру пішініне өтеді және оны кіру үшін пайдаланса, пайдаланушы профилі бетіне өтеді. Бұған жол бермеу үшін пайдаланушы профилі бетін толығымен өшіріп, оның орнына пайдаланушыларды өзіңізге ұнайтын кез келген бетке қайта бағыттай аласыз. Қалай екенін білу үшін осы мақаланы оқыңыз.

Joomla 1.6
Joomla 1.7
Joomla 2.5

Бүгін біз қазан айының соңында Интернетте жарылған танымал CMS Joomla-дағы 1 күндік маңызды осалдықты пайдалануды қарастырамыз. Біз сандармен осалдықтар туралы айтатын боламыз CVE-2016-8869, CVE-2016-8870Және CVE-2016-9081. Үшеуі де бір кодтың бір бөлігінен шыққан, ол бес жыл бойы рамканың тереңдігінде тұрып, қанатында күткен, содан кейін босатып, өзімен бірге хаос, бұзылған сайттар мен осы Joomla-ның кінәсіз пайдаланушыларының көз жасын әкеледі. Мониторлардың жарығынан көздері қызарған, пернетақталары нан үгінділеріне толы ең батыл және батыл әзірлеушілер ғана құтырған зұлым рухтарға қарсы тұра алды және түзетулер құрбандық үстеліне бастарын қойды.

ЕСКЕРТУ

Барлық ақпарат тек ақпараттық мақсатта берілген. Редакторлар да, автор да осы мақаланың материалдары келтірген ықтимал зиян үшін жауапты емес.

Бәрі қайдан басталды

2016 жылдың 6 қазанында Демис Пальма Stack Exchange сайтында тақырып құрды, онда ол былай деп сұрады: Joomla 3.6 нұсқасында неге аттас register() пайдаланушыларды тіркеудің екі әдісі бар? Біріншісі UsersControllerRegistration контроллерінде, екіншісі UsersControllerUser контроллерінде. Дамис UsersControllerUser::register() әдісі бір жерде қолданылғанын немесе ескі логикадан қалған эволюциялық анахронизм екенін білгісі келді. Оның алаңдаушылығы бұл әдіс кез келген көріністе пайдаланылмаса да, оны құрастырылған сұрау арқылы шақыруға болады. Оған мен итоктопус лақап атымен әзірлеушіден жауап алдым, ол растады: мәселе шынымен бар. Және Joomla әзірлеушілеріне есеп жіберді.

Содан кейін оқиғалар ең жылдам дамыды. 18 қазанда Joomla әзірлеушілері сол кезде пайдаланушыны тіркеуге мүмкіндік беретін PoC жобасын жасаған Дамистің есебін қабылдады. Ол өзінің веб-сайтында жазба жариялады, онда ол тапқан проблемасы туралы және осы мәселе бойынша өз ойлары туралы жалпылама түрде айтты. Сол күні әлі де осал кодты қамтитын Joomla 3.6.3 жаңа нұсқасы шығарылды.

Осыдан кейін Давиде Тампеллини қатені қарапайым пайдаланушыны емес, әкімшіні тіркеу нүктесіне айналдырады. 21 қазанда Joomla қауіпсіздік тобына жаңа іс келді. Бұл қазірдің өзінде артықшылықтарды арттыру туралы айтады. Сол күні Joomla веб-сайтында сейсенбі, 25 қазанда жүйелік ядродағы маңызды осалдықты түзететін 3.6.3 сериялық нөмірі бар келесі нұсқасы шығарылатыны туралы хабарландыру пайда болады.

25 қазан Joomla Security Strike Team Damis ашқан код бөлігімен жасалған соңғы мәселені тапты. Содан кейін 21 қазандағы түсініксіз атымен Prepare 3.6.4 Stable Release жазбасы өкінішті қатені түзететін ресми Joomla репозиторийінің негізгі тармағына жіберіледі.

Бұл шыққаннан кейін көптеген қызығушылық танытқан адамдар әзірлеушілер қауымдастығына қосылады - олар осалдықты насихаттайды және эксплойттарды дайындайды.

27 қазанда зерттеуші Гарри Робертс Xiphos Research репозиторийіне PHP файлын осал CMS серверіне жүктей алатын дайын эксплойтты жүктейді.

Егжей

Ал, фон аяқталды, ең қызықты бөлікке - осалдықты талдауға көшейік. Мен Joomla 3.6.3 нұсқасын сынақ нұсқасы ретінде орнаттым, сондықтан барлық жол нөмірлері осы нұсқаға қатысты болады. Төменде көретін файлдарға апаратын барлық жолдар орнатылған CMS түбіріне қатысты көрсетіледі.

Дамис Пальма ашқан жаңалығының арқасында жүйеде пайдаланушыларды тіркеуді жүзеге асыратын екі әдіс бар екенін білеміз. Біріншісі CMS арқылы пайдаланылады және /components/com_users/controllers/registration.php:108 файлында орналасқан. Екіншісі (бізге қоңырау шалу керек) /components/com_users/controllers/user.php:293 ішінде тұрады. Оны толығырақ қарастырайық.

286: /** 287: * Пайдаланушыны тіркеу әдісі. 288: * 289: * @return логикалық 290: * 291: * @1.6 бастап 292: */ 293: жалпы функция тіркелімі() 294: (295: JSession::checkToken("post") немесе jexit(JText::_) ("JINVALID_TOKEN")); ... 300: // Пішін деректерін алу. 301: $data = $this->input->post->get("user", array(), "array"); . .. 315: $return = $model->validate($form, $data); 316: 317: // Қателерді тексеріңіз. 318: егер ($қайтару === қате) 319: ( ... 345: / / Тіркеуді аяқтау 346: $return = $model->register($data);

Мұнда мен тек қызықты жолдарды қалдырдым. Осал әдістің толық нұсқасын Joomla репозиторийінде көруге болады.

Қалыпты пайдаланушыны тіркеу кезінде не болатынын анықтайық: қандай деректер жіберіледі және олар қалай өңделеді. Пайдаланушыны тіркеу параметрлерде қосылса, пішінді http://joomla.local/index.php/component/users/?view=registration сайтынан табуға болады.


Заңды пайдаланушыны тіркеу сұрауы келесі скриншотқа ұқсайды.


com_users компоненті пайдаланушылармен жұмыс істеуге жауапты. Сұраудағы тапсырма параметріне назар аударыңыз. Оның $controller.$method пішімі бар. Файл құрылымын қарастырайық.

Қалтадағы сценарийлердің атаулары контроллерлершақырылатын контроллерлердің атауларына сәйкес келеді. Біздің сұрауымызда қазір $controller = "registration" бар болғандықтан, файл шақырылады register.phpжәне оның register() әдісі.

Назар аударыңыз, сұрақ: тіркеуді өңдеуді кодтың осал жеріне қалай ауыстыруға болады? Сіз оны әлдеқашан болжаған шығарсыз. Осал және нақты әдістердің атаулары бірдей (тізілім), сондықтан бізге тек шақырылатын контроллердің атын өзгерту керек. Біздің осал контроллер қайда орналасқан? Дұрыс, файлда user.php. $controller = "user" болып шықты. Барлығын біріктіріп тапсырма = user.register аламыз. Енді тіркеу сұрауы бізге қажетті әдіспен өңделеді.


Бізге қажет екінші нәрсе - деректерді дұрыс пішімде жіберу. Мұнда бәрі қарапайым. Legitimate register() бізден jform деп аталатын массив күтеді, онда біз тіркеу деректерін – аты, логин, құпия сөз, электрондық поштаны жібереміз (сұраныспен скриншотты қараңыз).

  • /components/com_users/controllers/registration.php: 124: // Пайдаланушы деректерін алыңыз. 125: $requestData = $this->input->post->get("jform", array(), "array");

Біздің клиент бұл деректерді пайдаланушы деп аталатын массивтен алады.

  • /components/com_users/controllers/user.php: 301: // Пішін деректерін алыңыз. 302: $деректер = $this->input->post->get("пайдаланушы", массив(), "массив");

Сондықтан, сұраудағы барлық параметрлердің атауларын j-дан user-ге өзгертеміз.

Біздің үшінші қадамымыз - жарамды CSRF таңбалауышын табу, өйткені онсыз тіркеу болмайды.

  • /components/com_users/controllers/user.php: 296: JSession::checkToken("жазба") немесе jexit(JText::_("JINVALID_TOKEN"));

Ол MD5 хэшіне ұқсайды және оны, мысалы, /index.php/component/users/?view=login сайтындағы авторизация пішінінен алуға болады.


Енді сіз қалаған әдісті пайдаланып пайдаланушыларды жасай аласыз. Егер бәрі ойдағыдай болса, құттықтаймыз - сіз жай ғана осалдықты пайдаландыңыз CVE-2016-8870«Жаңа пайдаланушыларды тіркеуге рұқсат тексеруі жоқ».

UsersControllerRegistration контроллерінің «жұмыс істейтін» регистр() әдісінде ол келесідей көрінеді:

  • /components/com_users/controllers/registration.php: 113: // Тіркеу өшірілсе - кіру бетіне қайта бағыттау. 114: егер (JComponentHelper::getParams("com_users")->get("allowUserRegistration") == 0) 115: ( 116: $this->setRedirect(JRoute::_("index.php?option=com_users&view=" логин", false)); 117: 118: қайтару жалған; 119: )

Сонымен осал жерлерде:

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

Иә, мүмкін емес.

Екінші, әлдеқайда күрделі мәселені түсіну үшін біз жасаған сұрауды жіберіп, оның кодтың әртүрлі бөліктерінде қалай орындалатынын көрейік. Міне жұмысшы әдісінде пайдаланушы жіберген деректерді тексеруге жауапты бөлік:

Жалғасы тек мүшелерге ғана қолжетімді

1-нұсқа. Сайттағы барлық материалдарды оқу үшін «сайт» қауымдастығына қосылыңыз

Белгіленген мерзімде қауымдастыққа мүше болу сізге БАРЛЫҚ Hacker материалдарына қол жеткізуге мүмкіндік береді, жеке жинақталған жеңілдіктеріңізді арттырады және кәсіби Xakep Score рейтингін жинауға мүмкіндік береді!

Әмбебап бағдарламалық құрал арнайы оптикалық салондар, офтальмологиялық клиникалар, QC кеңселері және офтальмологтар үшін әзірленген.
Оптикалық салондар мен офтальмологтар үшін жұмыстың сапалы жаңа деңгейі.

Компьютерлік бағдарлама «ARMO plus»

(Медициналық есеп және сауда)

  • Барлық жұмыс орындары мен филиалдардағы бірыңғай тұтынушы файлы.
  • Жеңілдіктердің икемді жүйесі, дисконттық карталармен жұмыс.
  • Көтерме және бөлшек сауданы, көзілдірікті өндіру және жөндеу бойынша қызметтерді, медициналық қызметтерді жүргізу және есепке алу.
  • Штрих-код сканері арқылы кодтарды пайдаланып ақпаратты аты бойынша жылдам енгізіңіз және іздеңіз.
  • Үлгілерді пайдалана отырып, тауарларды жеткізуге сұраныстарды оңтайландыру. Тауарлық-материалдық қорларды азайту.
  • Медициналық тексеру деректерін автоматты түрде енгізу және медициналық жазбаларды қалыптастыру.
  • Рецепттерді беру және көзілдіріктерге тапсырыстарды қалыптастыруды автоматтандыру. Дәрігер мен магистрдің қызметтерін есепке алу.
  • Клиенттерді кеңес беру кездесуіне немесе жоспарлы линзаларды ауыстыруға шақыру үшін SMS хабарламаларды пайдалана отырып, жедел ақпаратты мақсатты жеткізу; компанияның акциялары туралы ақпарат беру.
  • Қолма-қол ақша мен тауар қозғалысы, тұтынушылардың қозғалысы, персонал жұмысы, қаржылық нәтижелер туралы жиынтық және егжей-тегжейлі есептер.
  • 1С: Бухгалтерлік есеп, интернет-дүкен және басқа бағдарламаларда кейіннен пайдалану үшін деректерді жүктеп алу мүмкіндігі.
  • Қызметкерлердің жеке белсенділігін бақылау (сату, емтиханға жолдама беру, клиенттерге жеңілдіктер беру және т.б.).
  • Бағдарлама функцияларына пайдаланушының қол жеткізуін конфигурациялау.
  • Қашықтағы жұмыс станциялары (филиалдары) арасында автоматтандырылған деректер алмасу.
  • Рұқсатсыз кіруден және ақпаратты көшіруден қорғаудың жоғары дәрежесі. Деректер базасын автоматты түрде мұрағаттау.

«ARMO plus» – таратылған деректер қоры технологияларын пайдаланатын жүйе

Автоматтандыруға арналған:

Көтерме және бөлшек сауданы жүргізу;

Тауарларды жеткізуге өтінімдер, жұмыс орындарында тауарлар мен қалған тауарлардың қозғалысын бақылау;

Офтальмологиялық тексерулер деректерімен, консультативтік тексеру күнделіктерімен электрондық клиент файлын жүргізу, көзілдіріктерге рецепттер мен бұйрықтар беру;

Медициналық тексеру мәліметтерін қалыптастыру және басып шығару;

Қолма-қол ақша мен тауарлар қозғалысы, тұтынушылардың қозғалысы және олардың сауалнамаларының нәтижелері туралы есептерді жасау.

Сенімді және қауіпсіз жұмысты ұйымдастыру үшін бағдарлама пайдаланушы құқықтарын және олардың ақпаратқа қол жеткізуін анықтайтын рөлдерге бөлуді қамтамасыз етеді. Технологиялар таратылған мәліметтер қорыжүргізуге мүмкіндік береді оптикалық дүкендер мен офтальмологиялық кабинеттер желісін пайдалану.

Анықтамалар мен құжаттар

Деректерді сақтау және жүйелеу, құжаттарды, есептерді, пациент файлдарын және т.б. қамтамасыз етілген анықтамалықтар. Каталогтардың пайдаланушыға ыңғайлы интерфейсі бар және олармен жұмыс істеу интуитивті Көмегімен құжаттаршаруашылық және қаржылық операциялар туралы мәліметтер енгізіледі, тауарларға сұраныстар жасалады, баланстар енгізіледі Анықтамалар мен құжаттарға қол жеткізуді бағдарлама әкімшісі анықтайды,пайдаланушыларға нақты «құқықтарды» тағайындау

Әртүрлі операцияларды бір уақытта орындау мүмкіндігі

Клиент файлы

ARMO Plus-те қызмет көрсетуге ерекше рөл беріледіэлектрондық клиент файлы. Бірыңғай клиенттік файлда бастапқы деректер, анамнез, диагностика, барулар, тексеру күнделігі және офтальмологиялық тексерулер, рецепттер, көзілдіріктерге тапсырыстар, сатып алулар туралы мәліметтер, клиенттің өтінімдері мен аванстары туралы мәліметтер бар. Бағдарлама сатылымдар, тапсырыстар мен тапсырыстар туралы есептер мен офтальмологиялық зерттеулерден үзінділерді жасайды. Клиенттер үшін икемді жеңілдіктер схемасы орнатылған. SMS және электрондық пошта хабарламалары арқылы хабарландыру жүйесі бар.


ARMO Plus бағдарламасындағы негізгі есептер

  • кірістер, шығыстар, қалдықтар, айналымдар туралы жиынтық және егжей-тегжейлі есептер
  • кірістер туралы есептер
  • құжаттар мен файлдар бойынша алдын ала есептер
  • шығыс материалдарының бағасын бақылау туралы есептер
  • көзілдіріктерге өтінімдер мен тапсырыстар туралы есептер
  • сақтау мерзімі туралы есептер
  • құжаттық есептер
  • клиенттер туралы есептер, күтілетін сапарлар, клиент көздері
  • тұтынушылардың жеңілдіктері туралы есептер
  • персонал туралы жиынтық және егжей-тегжейлі есептер

Есеп және талдау функцияларынан басқа, есептер қызметкерлердің жұмысын, сатуды және тұтынушылар ағынын бақылау үшін қолданылады.

Бөлінген деректер базасы және деректер алмасу

Бөлінген деректер базасының технологиясы географиялық тұрғыдан қашықтағы оптиктердің, офтальмологиялық кабинеттердің және филиалдардың жұмысына мүмкіндік береді. Ақпарат бір-біріне электронды алмасу пакеттері арқылы беріледі. Осының арқасында қашықтағы жұмыс станцияларында деректерді синхрондауға қол жеткізіледі. Ол осылай қалыптасады Бірыңғай пациент файлыжәне анықтамалық және құжаттамалық ақпараттың базасы ARMO Plus-пен жұмыс істейтін фирмалар бір-бірімен электронды түрде деректер алмаса алады.


Мәліметтер базасын басқару қызметі

Жұмыстың сенімділігі арқылы қамтамасыз етіледі сақтауДерекқор Сақталған деректер әрқашан болуы мүмкін қалпына келтіру. Дерекқорды қысу үшін деректерді түсіру және тазалау қарастырылған. ARMO plus мүмкін деректерді 1С: Enterprise бағдарламасына, Excel бағдарламасына, интернет-дүкенге жүктеңіз.



Бөлімдегі соңғы материалдар:

Оптикалық салондарға, офтальмологиялық емханаларға, контактілерді түзету кабинеттеріне арналған әмбебап бағдарламалық қамтамасыз ету Компьютерлік бағдарлама
Оптикалық салондарға, офтальмологиялық емханаларға, контактілерді түзету кабинеттеріне арналған әмбебап бағдарламалық қамтамасыз ету Компьютерлік бағдарлама

Joomla-да сәтті тіркелгеннен кейін пайдаланушылар әдепкі бойынша кіру бетіне қайта бағытталады (егер тіркелгіні белсендіру қажет болмаса) Сол жерден...

Тест: Сізде ерік бар ма?
Тест: Сізде ерік бар ма?

Сіз ерік күшімен проблемаларыңыз бар екенін өзіңіз білесіз. Кейде сіз эмоционалды көріністерде теңгерімсіз және тұрақсызсыз, бірақ соған қарамастан,...

Джон Гриндердің толық өмірбаяны
Джон Гриндердің толық өмірбаяны

Ол иезуит мектебінде классикалық білім алды. Джон Гриндер 60-жылдардың басында Сан-Франциско университетін психология бойынша бітірген және...