Pehea i hana ʻia ai ka hope o kahi pāʻani hacker e pili ana i ka luku ʻana i kahi kikowaena

Pehea i hana ʻia ai ka hope o kahi pāʻani hacker e pili ana i ka luku ʻana i kahi kikowaena
Ke hoʻomau nei mākou e haʻi iā ʻoe pehea i hoʻonohonoho ʻia ai kā mākou ʻimi laser me ka luku ʻana i ke kikowaena. E hoʻomaka ma mua 'atikala e pili ana i ka ho'oholo 'ana i ka 'imi.

I ka huina, ʻo ka hope o ka pāʻani he 6 mau hale kūkulu hale, a mākou e loiloi ai i kēia ʻatikala:

  1. Ma hope o nā hui pāʻani i kuleana no nā mīkini pāʻani
  2. Backend a me ka pūnaewele hoʻololi kaʻaahi ma VPS
  3. Unuhi mai nā noi hope (nā mea pāʻani) i Arduino a me nā lako ma ka pūnaewele
  4. ʻO Arduino, ʻo ia ke kuleana no ka mālama ʻana i nā relays, ua loaʻa nā kauoha mai ka unuhi ʻōlelo a hana i ka hana maoli
  5. Nā mea hana maoli: peʻahi, nā lei, nā kukui papahele, etc.
  6. Frontend - ka pūnaewele Falcon pono'ī, kahi i hoʻokele ai nā mea pāʻani i nā polokalamu

E hele kāua i kēlā me kēia o lākou.

Ka hope o nā mea pāʻani

Ua hoʻokō ʻia ka backend ma ke ʻano he noi boot spring: loaʻa iā ia kekahi mau mea hoʻomaha hoʻomaha, kahi websocket endpoint a me nā lawelawe me ka loiloi pāʻani.

ʻEkolu wale nō nā mea hoʻoponopono:

  • Megatron. Ua hoʻouna ʻia ka ʻaoʻao Megatron i kēia manawa ma o nā noi GET: ma mua a ma hope o ka hoʻohuli ʻana i ka mana. Ua puhi ka laser ma o ka POST noi.
  • Ka palapala ʻana i nā ʻaoʻao tilde i lawelawe ʻia e ka inoa ʻaoʻao. Hoʻopuka ʻo Tilde i nā ʻaoʻao no ka lawe ʻana aku ʻaʻole me nā inoa kumu, akā me ka ID kūloko a me ka ʻike pili.
  • ʻO ka mea hoʻoponopono Captcha e lawelawe i ka server pseudo-high-load captcha.

Ua hoʻohana ʻia ka Websocket endpoint e hoʻomalu i nā hāmeʻa: nā kukui, nā lei a me nā leka. Ua koho ʻia e hōʻike like i nā mea pāʻani a pau i ke kūlana o kēia manawa o ka hāmeʻa: inā paha ia a i ʻole, ʻeleu a ʻaʻole paha, he aha ke kala o ka leka e hoʻomālamalama ʻia nei ma ka paia. I mea e paʻakikī iki ai ka hana o ka hoʻohuli ʻana i ka laser, ua hoʻohui mākou i ka ʻae ʻana i ka lei a me ka laser me ka login like a me ka password admin/admin.

Hiki i nā mea pāʻani ke hoʻāʻo iā ia ma ka hoʻohuli ʻana i ka lei a hana like me ka laser.

Ua koho mākou i kahi pālua inoa inoa inoa ʻole i ʻole e hōʻeha i nā mea pāʻani me ke koho pono ʻole.

No ka hoʻonanea ʻana i ka hana, ua hoʻohana ʻia nā mea ID mai mongodb ma ke ʻano he mea ʻike ma ka lumi.

Loaʻa i ka ObjectId kahi hōʻailona manawa: ʻelua mau waiwai maʻamau, lawe ʻia kekahi ma muli o ka mea ʻike mea, a ʻo ka lua e pili ana i ka pid o ke kaʻina hana e hoʻopuka ai a me ke kumu kūʻai. Makemake au e hana i nā mea hōʻike i hana ʻia i nā manawa maʻamau a me nā kaʻina hana pid ʻē aʻe, akā me kahi counter maʻamau, i ʻoi aku ka hoihoi o ke koho ʻana i kahi mea ʻike laser. Eia naʻe, i ka hopena, hoʻomaka nā mea a pau me nā mea hōʻike i ʻokoʻa wale i ke kumu kūʻai. Ua maʻalahi paha kēia i ka ʻanuʻu a ʻaʻole koi i ka nānā ʻana i ke ʻano objectId.

Unuhi mai nā noi hope

Palapala Python, nāna i hana i nā manawa manawa a unuhi iā lākou mai nā abstractions pāʻani i ke ʻano hoʻohālike kino. No ka laʻana, "e hoʻā i ke kukui papahele" → "e hoʻāla i ka relay N2."

Hoʻopili ka palapala i ka queue RabbitMQ a hoʻololi i nā noi mai ka queue i Arduino. Ua hoʻokō pū ʻia ka loiloi o ka hoʻololi ʻana i nā kukui like ʻole: me kekahi mau mea hana, ua hoʻāla ʻia ke kukui ma luna o lākou, no ka laʻana, i ka wā i hāʻawi mua ʻia ai ka mana iā Megatron, ua hoʻomālamalama ʻia me ke kukui kahua. ʻO ka hoʻolālā kukui no ka cinematography o ke kiʻi holoʻokoʻa he moʻolelo ʻokoʻa e pili ana i ka hana nui a kā mākou mea hana papahana a me ka mea hoʻolālā hana ʻo Ilya Serov, a e haʻi mākou e pili ana iā ia ma kahi pou kaʻawale.

ʻO ka mea unuhi ʻōlelo ke kuleana no ka loiloi o ka hoʻokuʻu ʻana i ka shredder me ka hoʻohana ʻana i ka manawa a me ka hoʻouna ʻana i ke kiʻi i ke TV: ka manawa no ka hoʻokuʻu ʻana i ka shredder, kahi capybara uē, kahi kālepa ma ka hopena o ka pāʻani.

Pehea i hoʻonohonoho ʻia ai ka loiloi no ka hana ʻana i ka hōʻailona Megatron

Kiʻi hoʻāʻo

I kēlā me kēia 25 kekona ua hana ʻia kahi hōʻailona hou a hiki ke hoʻohana ʻia e hoʻā i ka laser no 10 kekona ma 10/255 mana. loulou i github me ka code Megatron.

A laila hoʻomaha ka laser no 1 minuke - i kēia manawa ʻaʻole i loaʻa a ʻaʻole i ʻae i nā noi pana hou.

ʻAʻole lawa kēia mana e puhi i ke kaula, akā hiki i kēlā me kēia mea pāʻani ke puhi iā Megatron a ʻike i ka hana ʻana o ke kukui laser.

Ua hoʻohana ʻia ka MD5 hashing algorithm e hana i ka hōʻailona. A ua holo pono ka papahana MD5 mai MD5 + counter + huna no ka hōʻailona hakakā a me ka huna ʻole no ka hōʻailona hoʻāʻo.

He kuhikuhi ʻo MD5 i kahi papahana pāʻoihana a Pavel, kā mākou mea hope. ʻElua mau makahiki i hala aku nei ua hoʻohana kēia papahana i ka MD5, a i kāna haʻi ʻana i ka mea hoʻolālā papahana he algorithm encryption kahiko ia, ua hoʻomaka lākou e hoʻohana iā MD5 mai MD5. No ka mea ua hoʻoholo mākou e hana i ka papahana noob loa, ua hoʻomanaʻo ʻo ia i nā mea āpau a hoʻoholo e hana i kahi kuhikuhi liʻiliʻi.

Paʻa kaua

ʻO ke ʻano hakakā ʻo Megatron he 100% mana laser ma 3 watts. Ua lawa kēia no 2 mau minuke e puhi i ke kaula i paʻa i ke kaumaha, e wāwahi i ka aquarium a hoʻoheheʻe i ke kikowaena me ka wai.

Ua waiho mākou i kekahi mau ʻōlelo aʻoaʻo e pili ana i ka Github o ka papahana: ʻo ia hoʻi, ka code generation token, kahi e hiki ai ke hoʻomaopopo i ka hoʻāʻo ʻana a me nā hōʻailona hakakā e hana ʻia ma muli o ka hōʻailona counter like. I ka hihia o kahi hōʻailona hakakā, ma waho aʻe o ke kumu kūʻai, hoʻohana ʻia kahi paʻakai, kahi kokoke loa i waiho ʻia i ka mōʻaukala o ka hoʻololi ʻana i kēia ʻano kumu, koe naʻe nā huaʻōlelo hope ʻelua.

I ka ʻike ʻana i kēia ʻikepili, ua hiki ke hoʻokaʻawale i nā hōʻailona hope 2 o ka paʻakai a ʻike maoli i nā helu mai Lost, i hoʻololi ʻia i ka ʻōnaehana hexadecimal, ua hoʻohana ʻia no ia.

A laila pono nā mea pāʻani e hopu i ke kumu kūʻai (ma ka nānā ʻana i ka hōʻailona hoʻāʻo) a hana i kahi hōʻailona hakakā me ka hoʻohana ʻana i ka waiwai counter a me ka paʻakai i koho ʻia ma ka pae mua.

Hoʻonui wale ʻia ka counter me kēlā me kēia pana hoʻāʻo a me kēlā me kēia 25 kekona. ʻAʻole mākou i kākau e pili ana i kēia ma nā wahi āpau, ua manaʻo ʻia he pāʻani pāʻani liʻiliʻi.

ʻO ka lawelawe launa pū ʻana o Captcha

I ka honua pāʻani, ʻo ia ka captcha like i hoʻouka ʻia i mea e hoʻāla ai i ka peʻahi a wehe i ka flipchart me kahi hōʻailona. Aia ma ka ʻaoʻao o ka pahupaʻikiʻi he pona me ka nānā ʻana i ka ukana.

Pehea i hana ʻia ai ka hope o kahi pāʻani hacker e pili ana i ka luku ʻana i kahi kikowaena

hana Ua helu wau i ka mea e hōʻike ai i ka nānā ʻana e like me ka ukana o kēia manawa: ka mahana a me ka CPU Fan. Ua hoʻoili ʻia nā metric i ka waihona timebase a huki ʻia e grafana.

Inā i loko o nā kekona 5 i hala ua ʻoi aku ma mua o 50 mau noi e hōʻike i ka captcha, a laila ua hoʻonui ʻia ka ukana e ka helu paʻa + o nā ʻanuʻu. ʻO ka helu ʻana he 100% hiki ke loaʻa i loko o ʻelua mau minuke.

ʻOiaʻiʻo, ʻoi aku ka nui o ka loiloi i ka lawelawe ma mua o ka mea i hōʻike ʻia i ka pāʻani hope loa: ua kau mākou i ka monitor ma ke ʻano e ʻike ʻia ai ka rotation o ka CPU Fan.

I ka hoʻomaka ʻana o ka ʻimi makemake lākou e haʻalele iā Grafan i hiki ke loaʻa mai ka pūnaewele Falcon. Akā, aia pū kekahi me nā springboot mai ka hōʻike noi hope, ʻaʻole i loaʻa iā mākou ka manawa e hoʻomaʻemaʻe ai, no laila ua hoʻoholo mākou e kāpae i ke komo ʻana iā ia. A pololei nō - ʻoiai i ka hoʻomaka ʻana o ka ʻimi, manaʻo kekahi mau mea pāʻani ua kākau ʻia ka noi ma ka springboot framework a ʻeli iho i nā inoa o kekahi mau lawelawe.

Hoʻokipa a me ka pahi ʻikepili

He mea hana no ka hoʻoili ʻana i ka ʻike mai ka hope i ka pūnaewele, ka server VPS kahi e holo ai ʻo RabbitMQ.

Ua mālama ʻia ka ʻaoʻao hope a me ka pahi data kā mākou VPS. Ua hoʻohālikelike kona mana me ke kamepiula āu i ʻike ai ma ka pale: he 2-core VPS me ʻelua gigabytes o RAM. Ua uku ʻia ke kumukūʻai no nā kumuwaiwai, ʻoiai ua hoʻolālā ʻia ka ukana kiʻekiʻe no nā lā liʻiliʻi - ʻo ia ka mea a kā mākou mea kūʻai aku e hoʻolālā nei e hoʻouka i ka VPS no kahi manawa pōkole. A laila ua ʻoi aku ka kiʻekiʻe o ka ukana ma mua o kā mākou i manaʻo ai, a ʻoi aku ka maikaʻi o ka uku paʻa. Inā ʻoe e hana i kahi ʻimi, koho i ka uku laina turbo.

No ka pale ʻana i ke kikowaena mai DDoSa, ua hoʻohana mākou iā Cloudflare.

He mea kūpono ke ʻōlelo ʻana ua kūʻē ka VPS i nā mea āpau me ka hanohano.

ʻO Arduino, ʻo ia ke kuleana no ka mālama ʻana i nā relays, ua loaʻa nā kauoha mai ka unuhi ʻōlelo a hana i ka hana maoli

ʻO kēia ke kumuhana o ka ʻatikala aʻe e pili ana i ka ʻāpana ʻenehana o ka papahana: ua hoʻouna wale ka hope i nā noi e hoʻohuli i kahi relay kikoʻī. Ua ʻike ʻia ka ʻike hope i nā mea āpau a me nā noi mai ia mea me he mea lā "e hoʻohuli i kēia hui." Ua hana mākou i kēia no ka hoʻāʻo mua ʻana i ka pūnaewele (ʻaʻole mākou i ʻākoakoa i nā Arduino a me nā relays āpau), i ka hopena ua haʻalele mākou i nā mea āpau e like me ia.

Kaumua

Ua hana koke mākou i ka pūnaewele ma tilde, hoʻokahi lā hana a mālama iā mākou i 30 tausani ma kā mākou kālā.

I ka hoʻomaka ʻana, manaʻo mākou e hoʻokuʻu wale aku i ka pūnaewele a hoʻohui i ka loiloi a mākou e nalo nei, akā ua holo mākou i ke ʻano o ka hoʻohana ʻana i pāpā iā mākou e hana i kēia.

ʻAʻole mākou i mākaukau e uhaki i ka laikini, no laila ʻelua mau koho: e hoʻokō i nā mea āpau iā mākou iho a i ʻole e hoʻopili pololei iā Tilda, e kamaʻilio e pili ana i ka papahana a noi i ka ʻae e hoʻololi i ke code.

Ua koho mākou i ka lua o ka koho a ʻaʻole lākou i hālāwai me mākou i ka hapalua wale nō, akā ua hāʻawi mai iā mākou i hoʻokahi makahiki o ka moʻokāki ʻoihana manuahi, no laila mākou e mahalo nui ai iā lākou. He mea ʻino loa ka hōʻike ʻana iā lākou i ka hoʻolālā pūnaewele o Sokol.

ʻO ka hopena, ua hoʻopili mākou i ka logic js i ka frontend no ka hoʻouna ʻana i nā noi i nā hāmeʻa haʻahaʻa, a hoʻololi iki i nā ʻano o nā pihi no ka hoʻohuli a hoʻopau ʻana i nā mea pāʻani.

Hoʻolālā kahua

ʻO ka mōʻaukala o ka huli ʻana, kahi mokuna kaʻawale.

Ua makemake mākou e hana ʻaʻole kahi kahua kahiko wale nō, akā he mea hoʻopailua loa e uhaki i nā lula kumu āpau o ka hoʻolālā. I ka manawa like, he mea nui e hoʻomau i ka hilinaʻi: ʻaʻole pono e uhaʻi i ka moʻolelo ENT, e hōʻike i ka pretentiousness o ka mea kākau, a pono nā mea pāʻani e manaʻoʻiʻo e hiki ke loaʻa kahi pūnaewele a lawe mai i nā mea kūʻai aku. A lawe mai la ia! ʻOiai e holo ana ka pāʻani, ua hoʻopili ʻia mākou i ʻelua manawa e hana i nā pūnaewele.

I ka wā mua, hana wau i ka hoʻolālā iaʻu iho, e hoʻāʻo ana e hoʻokomo i nā gif a me nā mea ʻālohilohi. Akā ʻo kaʻu kāne hoʻolālā o 10 mau makahiki i nānā ma luna o kona poʻohiwi a hoʻokuʻu iā ia he "maikaʻi loa." No ka uhaki i nā lula hoʻolālā, pono ʻoe e ʻike iā lākou.

Pehea i hana ʻia ai ka hope o kahi pāʻani hacker e pili ana i ka luku ʻana i kahi kikowaena

Nui nā hui kala e hoʻoulu ai i ka manaʻo hoʻopailua mau: ʻōmaʻomaʻo a me ka ʻulaʻula o ka waiwai like, hina a ʻulaʻula, uliuli a ʻeleʻele. I ka hopena, ua hoʻonohonoho mākou i kahi hui o ka ʻulaʻula a me ka ʻōmaʻomaʻo e like me nā kala kumu, hoʻohui i nā gif me kahi pōpoki a koho i nā kiʻi 3-4 o Sokolov iā ia iho mai kahi kiʻi kiʻi. He liʻiliʻi wale nō kaʻu mau koi: he kanaka waena, e ʻaʻahu ana i ka lole kūpono ʻole i nā ʻano nui a i loko o kahi "paʻi kiʻi kiʻi studio ʻoihana". No ka hoʻāʻo, hōʻike lākou i nā hoaaloha a nīnau "pehea kou makemake?"

I ka wā o ke kaʻina hana hoʻolālā, pono kaʻu kāne e moe i kēlā me kēia hapalua hola; hoʻomaka ka helikopter e lele. Ua hoʻāʻo ʻo Pasha e wehe i ka console developer i ka hapa nui o ka pale i ka hoʻopau ʻana i ka frontend - e pale i kona mau maka.

Nā mea hana maoli

Ua kau ʻia nā mea pā a me nā kukui ma o nā relays solid-state i ʻole e hoʻā koke i ka mana piha - i hoʻonui ʻia ka mana e like me ka nānā ʻana.

Akā, e kamaʻilio mākou e pili ana i kēia ma ka pou aʻe, e pili ana i ka ʻāpana lako o ka pāʻani a me ke kūkulu maoli ʻana o ka pūnaewele.

E noho ʻoe!

Nā ʻatikala ʻē aʻe e pili ana i ka ʻimi e luku i ke kikowaena

Pehea i hana ʻia ai ka hope o kahi pāʻani hacker e pili ana i ka luku ʻana i kahi kikowaena

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka