Iyo backend yemutambo wehacker nezvekuparadza sevha yakagadzirwa

Iyo backend yemutambo wehacker nezvekuparadza sevha yakagadzirwa
Isu tinoenderera mberi nekukuudza kuti yedu laser kuda nekuparadzwa kweseva kwakarongwa sei. Tanga mune yapfuura chinyorwa pamusoro pekugadzirisa kutsvaga.

Pakazara, kuseri kwemutambo kwaive ne6 zvivakwa zvekuvaka, izvo zvatichaongorora mune ino chinyorwa:

  1. Kumashure kwemasangano emitambo aitarisira nzira dzemitambo
  2. Backend uye saiti data exchange bhazi paVPS
  3. Mushanduri kubva kubackend zvikumbiro (zvinhu zvemutambo) kuenda kuArduino uye hardware pasaiti
  4. Arduino, uyo aiva nebasa rokudzora marelay, akagamuchira mirairo kubva kumushanduri uye akaita basa chairo
  5. Zvishandiso chaizvo: fan, garlands, marambi epasi, nezvimwe.
  6. Frontend - iyo Falcon webhusaiti pachayo, kubva kune iyo vatambi vaidzora zvishandiso

Ngatipfuure nepakati peumwe neumwe wavo.

Kumashure kwemasangano emitambo

Iyo yekumashure yakaitwa sechitubu bhutsu application: yaive ine akati wandei ekuzorora controller, websocket endpoint uye masevhisi ane mutambo logic.

Paingova nevatongi vatatu chete:

  • Megatron. Iyo yazvino Megatron peji yakatumirwa kuburikidza neGET zvikumbiro: pamberi uye mushure mekubatidza simba. Iyo laser yakapfura kuburikidza nechikumbiro chePOST.
  • Kugadzira mapeji etilde kuitira kuti ashandiswe nemazita epeji. Tilde inogadzira mapeji ekutumira kunze kwete nemazita ekutanga, asi ane ID yemukati uye ruzivo rwekutevedzera.
  • Captcha controller yekushandira pseudo-high-load server captcha.

Websocket endpoint yakashandiswa kudzora gadget: marambi, garland uye mavara. Yakasarudzwa kuti iratidze kune vese vatambi mamiriro azvino echishandiso: ingave yakabatidzwa kana kuti yakavharwa, inoshanda kana kwete, ndeupi ruvara rwetsamba iri kuvhenekerwa pamadziro. Kuti tiite kuti basa rekubatidza laser rinyanye kuoma, isu takawedzera mvumo kune garland uye laser ine yakafanana login uye password admin/admin.

Vatambi vaigona kuiyedza nekubatidza garland vodzokorora zvakafanana nelaser.

Isu takasarudza diki rakadai rekupinda-password pair kuitira kuti tisarwadzise vatambi nesarudzo isina kufanira.

Kuita kuti basa rinyanye kunakidza, maID echinhu kubva kumongodb akashandiswa sezviziviso zvemudziyo mukamuri.

ObjectId ine timestamp: maitiro maviri asina kurongeka, imwe yacho inotorwa zvichibva pane identifier yemudziyo, uye yechipiri zvichienderana nepid yemaitiro ayo anoigadzira uye kukosha kwekupikisa. Ini ndaida kugadzira zviziviso zvinogadzirwa nguva nenguva uye nemaitiro akasiyana epid, asi nekaunda yakajairwa, kuitira kuti kusarudzwa kweiyo laser mudziyo identifier kungave kunakidza. Nekudaro, pakupedzisira, munhu wese akatanga nezviziviso izvo zvaisiyana chete mumutengo wecounter. Izvi zvinogona kunge zvakaita kuti danho rive nyore uye risingade kuongororwa kwechinhuId chimiro.

Mushanduri kubva kubackend zvikumbiro

Python script, akashanda pazviyeredzi uye akazvishandura kubva mumitambo yekutamba kuita mufananidzo wepanyama. Semuenzaniso, "batidza mwenje wepasi" β†’ "batidza relay N2."

Iyo script yakabatana neRabbitMQ mutsara uye yakatamisa zvikumbiro kubva pamutsetse kuenda kuArduino. Yakaitawo pfungwa yeparallel light switching: pamwe nemimwe michina, mwenje pairi wakabatidzwa, semuenzaniso, simba parakatanga kupihwa kuMegatron, raivhenekerwa nemwenje wedariro. Dhizaini yekuvhenekesa kweiyo cinematography yechiitiko chese inyaya yakaparadzana nezve basa rakakura repurojekiti yedu-mugadziri uye mugadziri wekugadzira Ilya Serov, uye isu tichataura nezvazvo mune imwe nzvimbo.

Mushanduri aivewo nebasa rekufunga kwekutanga shredder achishandisa timer uye kuendesa chifananidzo kuTV: iyo timer yekutanga shredder, inopopota capybara, kushambadzira pakupera kwemutambo.

Iyo pfungwa yekugadzira iyo Megatron token yakagadziriswa

Test shot

Masekonzi makumi maviri neshanu ega ega chiratidzo chitsva chaigadzirwa uye chaigona kushandiswa kubatidza laser kwemasekonzi gumi pa25/10 simba. Batanidza ne github ine Megatron kodhi.

Laser yakabva yatonhorerwa kweminiti imwe - panguva iyi yanga isipo uye haina kugamuchira zvikumbiro zvitsva zvepfuti.

Iri simba rakanga risingakwane kupisa netambo, asi chero mutambi aigona kupisa Megatron uye kuona laser beam ichiita.

Iyo MD5 hashing algorithm yakashandiswa kugadzira chiratidzo. Uye chirongwa chakashanda MD5 kubva MD5 + counter + chakavanzika nokuda kwechiratidzo chekurwisana uye pasina chakavanzika chechiratidzo chekuedza.

MD5 inoreva chirongwa chekutengesa chakaitwa naPavel, mubatsiri wedu. Makore mashoma apfuura chirongwa ichi chakashandisa MD5, uye paakaudza muvaki wepurojekiti kuti yaive yekare encryption algorithm, vakatanga kushandisa MD5 kubva kuMD5. Sezvo takasarudza kuita yakanyanya noob purojekiti inogoneka, akarangarira zvese uye akafunga kuita chirevo chidiki.

Combat shot

Megatron's kurwisa maitiro ndeye 100% laser simba pa3 watts. Izvi zvinokwana maminetsi maviri kupisa kuburikidza netambo yakabata huremu, kutyora iyo aquarium uye mafashama sevha nemvura.

Takasiya mazano mashomanana paGithub yepurojekiti: kureva, kodhi yechizvarwa chechiratidzo, kubva kwaanogona kunzwisisa kuti muedzo uye zviratidzo zvekurwisana zvinogadzirwa zvichienderana nechiratidzo chimwechete. Muchiitiko chechiratidzo chekurwisana, kunze kweiyo counter value, munyu unoshandiswawo, iyo inenge yasara zvachose munhoroondo yekushandura pfungwa iyi, kunze kwemavara maviri ekupedzisira.

Kuziva iyi data, zvaive zvichikwanisika kuronga kuburikidza nekupedzisira 2 zviratidzo zvemunyu uye kunyatsoona kuti nhamba kubva Kurasika, yakashandurwa kune hexadecimal system, yakashandiswa pairi.

Ipapo vatambi vaifanira kubata iyo counter value (nekuongorora chiratidzo chekuyedza) uye kugadzira chiratidzo chekurwisa vachishandisa iyo inotevera counter kukosha uye munyu wakasarudzwa pane yapfuura nhanho.

Iyo counter inongowedzera nekupfura yega yega bvunzo uye ese makumi maviri neshanu masekonzi. Isu hatina kunyora pamusoro peizvi chero kupi zvako, yaifanirwa kunge iri kushamisika kwemutambo.

Captcha yekudyidzana sevhisi

Munyika yemitambo, iyi yaive yakafanana captcha yaifanira kutakurwa kuitira kuti ubatidze feni uye uvhure flipchart neinonongedza. Padivi pecamera paive nelaptop yaive neload monitoring.

Iyo backend yemutambo wehacker nezvekuparadza sevha yakagadzirwa

sevhisi Ndakaverenga zvekuratidza mukutarisa semutoro wazvino: tembiricha uye CPU Fan. Metrics akaendeswa kune iyo timebase dhatabhesi uye akadhonzwa nagrafana.

Kana mumasekonzi ekupedzisira e5 pane zvikumbiro zve50 kuratidza captcha, ipapo mutoro wakawedzerwa neyakagadziriswa + nhamba yezviyero. Iko kuverenga kwaive kwekuti 100% mutoro waigona kuwanikwa mumaminetsi maviri.

Muchokwadi, pakanga paine zvakawanda zvine musoro mubasa kupfuura zvakaratidzwa mumutambo wekupedzisira: isu takaisa iyo yekutarisa nenzira yekuti chete kutenderera kweCPU Fan kwaionekwa.

Pakutanga kwekutsvaga ivo vaida kusiya Grafan inowanikwa kubva kuFalcon webhusaiti. Asi yaivewo nespringboot metrics kubva kubackend application report, yatakanga tisina nguva yekubvisa, saka takafunga kuvharisa kupinda kwairi. Uye zvakakodzera - kunyangwe pakutanga kwekutsvaga, vamwe vatambi vakafungidzira kuti application yacho yakanyorwa muchirimo chechirimo uye vakatochera mazita emamwe masevhisi.

Hosting uye data bhasi

Chishandiso chekuendesa ruzivo kubva kumashure kuenda kune saiti, iyo VPS server iyo RabbitMQ yaimhanya.

Iyo backend uye data bhazi zvakachengetwa VPS yedu. Simba rayo raifananidzwa nekombuta yawaona pachiratidziri: 2-core VPS ine maviri gigabytes e RAM. Mutero wacho wakabhadhariswa zviwanikwa, sezvo iyo yepamusoro mutoro wakarongwa kwemazuva mashoma - izvi ndizvo zvinoitwa nevatengi vedu vanoronga kurodha VPS kwenguva pfupi. Zvadaro zvakazoitika kuti mutoro wacho wakanga wakakwirira kudarika zvataitarisira, uye mutero wakagadziriswa waizove unobatsira. Kana iwe ukaita kuda, sarudza mutsetse wemitero turbo.

Kuti tidzivirire sevha kubva kuDDoSa, takashandisa Cloudflare.

Zvakakodzera kutaura kuti VPS yakakunda zvese nerukudzo.

Arduino, uyo aiva nebasa rokudzora marelay, akagamuchira mirairo kubva kumushanduri uye akaita basa chairo

Iyi ndiyo yakawanda musoro wechinyorwa chinotevera nezve Hardware chikamu chepurojekiti: iyo backend yakangotumira zvikumbiro zvekuvhura chaiyo relay. Zvakaitika kuti backend yaiziva zvinenge zvese masangano uye zvikumbiro kubva kwairi zvaiita senge "batidza ichi." Isu takaita izvi kwekutanga kuyedzwa kwesaiti (taive tisati taunganidza ese Arduino uye relays), pakupedzisira takasiya zvese zvakadaro.

Frontend

Isu takakurumidza kugadzira saiti patilde, zvakatora zuva rimwe rekushanda ndokutichengeta zviuru makumi matatu pabhajeti redu.

Pakutanga, takafunga zvekungoendesa kunze kwenyika saiti uye nekuwedzera pfungwa yatakanga tisina, asi takamhanyira mukushandiswa kwaitirambidza kuita izvi.

Isu takanga tisina kugadzirira kutyora rezinesi, saka pane zvingasarudzwa zviviri: kuita zvese isu pachedu kana kubata Tilda zvakananga, taura nezve purojekiti uye kukumbira mvumo yekuchinja kodhi.

Isu takasarudza yechipiri sarudzo uye ivo havana kungosangana nesu pakati, asi vakatotipa gore remahara bhizinesi account, iyo yatinotenda zvikuru kwavari. Zvaive zvakaoma kuvaratidza Sokol's website design.

Nekuda kweizvozvo, isu takanamatira js logic kumberi kwekutumira zvikumbiro kumidziyo yekutanga, uye nekuchinja zvishoma masitaera emabhatani ekubatidza nekudzima zvinhu zvemutambo.

Site design

Nhoroondo yekutsvaga, iyo yakakosha chitsauko chakasiyana.

Isu taida kugadzira kwete nzvimbo yechinyakare, asi inosemesa zvachose iyo inotyora mitemo yese yekugadzira. Panguva imwecheteyo, zvaive zvakakosha kuchengetedza kutendeseka: yaifanira kusatyora nyaya yeENT, kuratidza hunyengeri hwemunyori, uye vatambi vaizofanira kutenda kuti saiti yakadaro inogona kuvepo uye kunyange kuunza vatengi. Uye akauya nayo! Panguva iyo mutambo waienderera mberi, isu takabatwa kaviri kuti tigadzire mawebhusaiti.

Pakutanga ndakaita dhizaini pachangu, ndichiedza kusanganisira mamwe magif uye zvinhu zvinopenya. Asi murume wangu wemugadziri wemakore gumi akatarisa pafudzi rake ndokuramba achiti "yakanyanya kunaka." Kuti utyore mitemo yekugadzira, unofanirwa kuvaziva.

Iyo backend yemutambo wehacker nezvekuparadza sevha yakagadzirwa

Kune akati wandei mavara musanganiswa anomutsa kusingaperi kunzwa kwekusemesa: girinhi uye tsvuku yehupfumi hwakaenzana, grey nepingi, bhuruu pamwe nebrown. Pakupedzisira, takagara pane musanganiswa wekutsvuka uye girini semavara ekutanga, akawedzera magif ane katsi uye akasarudzwa 3-4 mafoto eSokolov pachake kubva muchitoro chefoto. Ini ndaingove nezvinodiwa zvishoma: murume wepakati-kati, akapfeka sutu isingakodzeri masayizi maviri akakurisa uye mu "professional studio photo shoot" pose. Pabvunzo, vakairatidza kushamwari ndokubvunza "unoifarira sei?"

Munguva yekugadzira dhizaini, murume wangu aifanira kuenda kunorara hafu yeawa yega yega; helikopta yakatanga kubhururuka. Pasha akaedza kuvhura iyo developer console kune yakawanda yescreen paakapedza kupedzisa kumberi - kuchengetedza maziso ake.

Midziyo chaiyo

Iwo mafeni nemarambi akaiswa kuburikidza neakasimba-state relays kuti asabatike pasimba rakazara nekukasira - kuti simba riwedzere mukuenderana nekutarisa.

Asi isu tichataura pamusoro peizvi mune inotevera post, nezve Hardware chikamu chemutambo uye kuvakwa chaiko kwesaiti.

Ramba wakashama!

Zvimwe zvinyorwa pamusoro pekuda kuparadza server

Iyo backend yemutambo wehacker nezvekuparadza sevha yakagadzirwa

Source: www.habr.com

Voeg