Универзален софтвер за оптички салони, офталмолошки клиники, простории за корекција на контакти. Универзален софтвер за оптички салони, офталмолошки клиники, контактни простории за корекција Компјутерска програма

Во Joomla, по успешна регистрација, корисниците стандардно се пренасочуваат на a страница за најава(ако сметката не треба да се активира). Оттаму (по пријавувањето) корисниците се пренасочуваат на кориснички профилстраница. Ова се случува дури и ако имате поставено пренасочување на најавување на нешто друго Модул за формулар за најава.

За да го промените ова однесување, можете да ги пренасочите корисниците по регистрацијата на која било друга страница на вашата веб-локација.
За да го направите ова, треба да уредите основна датотека на Joomla. Имајте предвид дека вашите промени може да бидат препишани со ажурирање на Joomla. Секогаш документирајте ги промените што ги правите во основните датотеки на Joomla за да можете брзо да ги повторите доколку е потребно.

Отвори датотека:
компоненти/com_users/controllers/registration.php

Скролувајте надолу до самото дно. Почетна линија 162 или така ќе имате тековен код:

if ($return === "adminactivate" ) ( $this -> setMessage (JText:: _() ) ; $this -> setRedirect (JRoute:: _(, false ) ) ;) друго ако ($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", неточно ) ; )

Во овој дел имате 3 врски кои започнуваат со index.php?

  • Првиот () се извршува по регистрацијата на корисникот ако сметката треба да биде активирана од администратор
  • Второ( 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_VERIFY“)) ; $this -> setRedirect(JRoute::_( "index.php?option=com_users&view=registration&layout=complete", неточно ) ; ) друго ако ($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

Денес ќе ја разгледаме експлоатацијата на критична 1-дневна ранливост во популарната CMS Joomla, која експлодираше на Интернет на крајот на октомври. За ранливости ќе зборуваме со бројки CVE-2016-8869, CVE-2016-8870И CVE-2016-9081. Сите три потекнуваат од едно парче шифра што тлееше во длабочините на рамката цели пет долги години, чекајќи во крилјата, за потоа да се ослободи и да донесе со себе хаос, хакирани страници и солзи на невините корисници на оваа Joomla. Само најхрабрите и најхрабрите програмери, чии очи се црвени од светлината на мониторите и чии тастатури се преполни со трошки од леб, можеа да ги предизвикаат бесните зли духови и да ги положат главите на олтарот на поправките.

ПРЕДУПРЕДУВАЊЕ

Сите информации се дадени само за информативни цели. Ниту уредниците ниту авторот не се одговорни за каква било можна штета предизвикана од материјалите на овој напис.

Каде што сè започна

На 6 октомври 2016 година, Демис Палма креираше тема на Stack Exchange во која праша: зошто, всушност, во верзијата 3.6 на Joomla постојат два методи за регистрирање корисници со исто име register()? Првиот е во контролерот UsersControllerRegistration и вториот е во контролерот UsersControllerUser. Дамис сакаше да знае дали некаде е користен методот UsersControllerUser::register() или тоа е само еволутивен анахронизам кој останал од старата логика. Неговата грижа беше дека дури и ако овој метод не се користи од никакво гледиште, може да се повика со изработено барање. На што добив одговор од програмер под прекарот итоктопус, кој потврди: проблемот навистина постои. И испрати извештај до програмерите на Joomla.

Тогаш настаните се развија најбрзо. На 18 октомври, програмерите на Joomla го прифатија извештајот од Damis, кој дотогаш подготвил PoC што ќе овозможи регистрација на корисникот. Тој објави белешка на својата веб-страница, каде што зборува општо за проблемот што го нашол и неговите размислувања за оваа работа. Истиот ден е објавена нова верзија на Joomla 3.6.3, која сè уште содржи ранлив код.

После ова, Давиде Тампелини ја врти грешката до точка да регистрира не едноставен корисник, туку администратор. И на 21 октомври, нов случај пристигнува до тимот за безбедност на Joomla. Веќе се зборува за зголемување на привилегиите. Истиот ден, на веб-страницата на Joomla се појавува соопштение дека во вторник, 25 октомври, ќе биде објавена следната верзија со сериски број 3.6.3, со која се коригира критична ранливост во јадрото на системот.

25 октомври Joomla Security Strike Team го наоѓа најновиот проблем создаден од парчето код што го откри Дамис. Потоа, заложбата од 21 октомври со незабележливото име Подгответе 3.6.4 Стабилно издание се турка во главната филијала на официјалното складиште на 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 boolean 290: * 291: * @since 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: ако ($return === неточно) 319: ( ... 345: / / Завршете ја регистрацијата 346: $return = $model->register($data);

Овде оставив само интересни редови. Целосната верзија на ранливиот метод може да се погледне во складиштето на Joomla.

Ајде да откриеме што се случува при нормална регистрација на корисникот: кои податоци се испраќаат и како се обработуваат. Ако регистрацијата на корисникот е овозможена во поставките, формуларот може да се најде на http://joomla.local/index.php/component/users/?view=registration.


Легитимното барање за регистрација на корисникот изгледа како следнава слика од екранот.


Компонентата com_users е одговорна за работа со корисници. Обрнете внимание на параметарот на задачата во барањето. Има формат $controller.$method . Ајде да ја погледнеме структурата на датотеката.

Имиња на скрипти во папката контролориодговараат на имињата на повиканите контролери. Бидејќи нашето барање сега содржи $controller = "регистрација", датотеката ќе биде повикана регистрација.phpи неговиот метод register().

Внимание, прашање: како да се пренесе обработката на регистрација на ранливо место во кодот? Веројатно веќе погодивте. Имињата на ранливите и реалните методи се исти (регистрирај се), така што само треба да го смениме името на повиканиот контролер. Каде се наоѓа нашиот ранлив контролер? Така е, во досието корисник.php. Излегува $controller = "корисник" . Соединувајќи сè, добиваме задача = корисник.регистрирај се . Сега барањето за регистрација се обработува со методот што ни треба.


Втората работа што треба да направиме е да ги испратиме податоците во правилен формат. Сè е едноставно овде. 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: $data = $this->input->post->get("user", array(), "array");

Затоа, ги менуваме имињата на сите параметри во барањето од jfrom во корисник.

Нашиот трет чекор е да пронајдеме валиден CSRF токен, бидејќи без него нема да има регистрација.

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

Изгледа како хаш на MD5 и можете да го земете, на пример, од формуларот за авторизација на страницата /index.php/component/users/?view=login.


Сега можете да креирате корисници користејќи го саканиот метод. Ако сè успеа, тогаш честитки - штотуку искористивте ранливост CVE-2016-8870„Недостасува проверка на дозвола за регистрирање нови корисници“.

Вака изгледа во методот „работен“ register() од контролерот 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= најава", лажно)); 117: 118: врати лажно; 119: )

И така во ранливите:

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

Да, нема шанси.

За да го разбереме вториот, многу посериозен проблем, да го испратиме барањето што го создадовме и да видиме како се извршува во различни делови од кодот. Еве го делот што е одговорен за потврдување на податоците доставени од корисникот во методот на работник:

Продолжението е достапно само за членовите

Опција 1. Придружете се на заедницата „сајт“ за да ги прочитате сите материјали на страницата

Членството во заедницата во наведениот период ќе ви овозможи пристап до СИТЕ хакерски материјали, ќе го зголеми вашиот личен кумулативен попуст и ќе ви овозможи да акумулирате професионален рејтинг на Xakep Score!

Универзален софтвер дизајниран специјално за оптички салони, офталмолошки клиники, канцеларии за КК и офталмолозите.
Квалитативно ново ниво на работа за оптички салони и офталмолозите.

Компјутерска програма „АРМО плус“

(Медицинско сметководство и трговија)

  • Унифицирана датотека со клиенти на сите работни места и филијали.
  • Флексибилен систем на попусти, работа со попуст картички.
  • Одржување и сметководство за продажба на големо и мало, услуги за производство и поправка на очила, медицински услуги.
  • Брзо внесете и пребарувајте информации по име, користејќи шифри, преку скенер за баркодови.
  • Оптимизација на барањата за набавка на стоки со користење на шаблони. Минимизирање на залихите.
  • Автоматско внесување на податоци од лекарски преглед и генерирање медицински белешки.
  • Издавање рецепти и автоматизирање на формирање нарачки за очила. Сметководство за услугите на лекар и мајстор.
  • Целно доставување на оперативни информации со помош на СМС пораки за да се поканат клиентите на состанок за консултации или закажана замена на објективот; информирање за акциите на компанијата.
  • Резиме и детални извештаи за движење на готовина и стоки, текови на клиенти, работа со персонал, финансиски резултати.
  • Можност за преземање податоци за последователна употреба во 1C: Сметководство, онлајн продавница и други програми.
  • Следење на индивидуалната активност на вработените (продажба, упатувања за прегледи, давање попусти на клиенти и сл.).
  • Конфигурирање на кориснички пристап до програмските функции.
  • Автоматска размена на податоци помеѓу оддалечените работни станици (гранки).
  • Висок степен на заштита од неовластен пристап и копирање на информации. Автоматско архивирање на базата на податоци.

„ARMO plus“ е систем кој користи технологии за дистрибуирана база на податоци

Дизајниран за автоматизација:

Спроведување на продажба на големо и мало;

Пријави за набавка на стоки, контрола на движење на стоки и преостанати стоки на работни места;

Водење електронско досие на клиентот со податоци од офталмолошки прегледи, дневници на консултативни прегледи, издавање рецепти и налози за очила;

Формирање и печатење на податоци од медицински преглед;

Генерирање извештаи за движењето на готовина и стоки, тековите на клиентите и резултатите од нивните анкети.

За да се организира сигурно и безбедно работење, програмата обезбедува поделба на улоги кои ги одредуваат правата на корисниците и нивниот пристап до информации. Технологии дистрибуирана база на податоциви дозволуваат да спроведете функционирање на мрежа на оптички продавници и офталмолошки канцеларии.

Директориуми и документи

За складирање и систематизирање податоци, брзо пополнување документи, извештаи, досиеја на пациенти итн. обезбедени референтни книги. Директориумите имаат кориснички интерфејс и работата со нив е интуитивна Со помош документисе внесуваат информации за деловни и финансиски трансакции, се прават барања за стоки, се внесуваат салда Пристапот до директориуми и документи го одредува администраторот на програмата,доделување на корисниците специфични „права“

Можност за истовремено извршување на различни операции

Датотека со клиент

Посебна улога во АРМО Плус има одржувањетоелектронска клиентска датотека. Унифицирана клиентска датотека содржи информации за примарни податоци, анамнеза, дијагноза, посети, дневник на прегледи и офталмолошки прегледи, рецепти, нарачки за очила, податоци за набавки, пријави и аванси на клиентот. Програмата генерира извештаи за продажба, нарачки и барања од клиенти и извадоци од офталмолошки прегледи. За клиентите е поставена флексибилна шема за попуст. Има систем за известување преку СМС и е-пошта пораки.


Основни извештаи во АРМО Плус

  • збирни и детални извештаи за приходи, расходи, салда, промет
  • извештаи за приходите
  • однапред извештаи за документи и досиеја
  • извештаи за контрола на цените на потрошен материјал
  • извештаи за апликации и нарачки за очила
  • извештаи за рокот на траење
  • извештаи за документи
  • извештаи за клиенти, очекувани посети, извори на клиенти
  • извештаи за попуст на клиентите
  • резиме и детални извештаи за персоналот

Покрај функциите за сметководство и анализа, извештаите се користат за следење на работата на персоналот, продажбата и тековите на клиентите.

Дистрибуирана база на податоци и размена на податоци

Технологијата на дистрибуирана база на податоци овозможува работа на географски оддалечени оптичари, офталмолошки канцеларии и филијали. Информациите се пренесуваат едни на други преку електронски пакети за размена. Поради ова, синхронизацијата на податоците се постигнува на оддалечени работни станици. Така се формира унифицирана датотека на пациентоти база на податоци со референтни и документарни информации Фирмите кои работат со АРМО Плус можат да разменуваат податоци меѓу себе по електронски пат.


Услуга за администрација на бази на податоци

Сигурноста на работата се обезбедува со помош на конзервацијаБаза на податоци Зачуваните податоци секогаш можат да бидат врати. За да се компресира базата на податоци, обезбедено е растоварување и чистење на податоците. ARMO plus може поставете податоци во програмата 1C: Enterprise, Excel, онлајн продавница.



Најнови материјали во делот:

Метод на меѓусекторска рамнотежа
Метод на меѓусекторска рамнотежа

Меѓуиндустриска рамнотежа (IOB, влезно-излезен модел, метод на влезно-излез) е економски и математички модел на рамнотежа што ја карактеризира...

Модел на макроекономска рамнотежаAD-AS
Модел на макроекономска рамнотежаAD-AS

Состојбата на националната економија во која постои севкупна пропорционалност помеѓу: ресурсите и нивното користење; производство и...

Највкусното тест возење на Olympus OM-D E-M1 Mark II
Највкусното тест возење на Olympus OM-D E-M1 Mark II

Неодамна беше наведен на нашата веб-страница. Прегледот ги испитуваше клучните карактеристики на камерата, неговите можности за снимање фотографии и видеа, како и ...