Tema
/
Interneto svetainių serverio dalies kūrimas GO
📖 Teorija

Ką pastatei, sąžiningas įspėjimas ir kur toliau

Ką pastatei. Tuščias main.go tapo: Chi serveriu, atvaizduojančiu Templ per HTMX; Postgres per goose ir sqlc su schema kaip vienu tiesos šaltiniu; registracija, prisijungimu ir slaptažodžio atstatymu per serverio pusės sesijas; CSRF, kurio poreikį pajutai prieš jį pridėdamas; failų įkėlimu, kuris srautu teka ir maišuoja vienu perėjimu; nuosavybe, užtikrinta SQL; pasirašymu be paskyros, kur žetonas ir yra autorizacija; parašu, kuris perskaičiuoja savo maišą ir niekada dėl jos nemeluoja; papildomu-tik audito pėdsaku, kurį saugo pati duomenų bazė; ir tikru diegimu, kuris pergyvena savo paties perdiegimus. Penkiolika pamokų, viena sistema, kiekviena dalis užsitarnauta.

Įspėjimas, paskutinį kartą — nes pabaigoje jis svarbiausias. SignFlow parašas — įvestas vardas, laiko žyma ir dokumento SHA-256 pasirašymo metu. Jis atsparus klastojimo įrodymui ir nieko daugiau. Tai ne PKI. Tai ne eIDAS kvalifikuotas ar pažangus elektroninis parašas. Jis neįrodo tapatybės — tik kad kas turėjo nuorodą įvedė vardą prieš šiuos tikslius baitus šiuo metu. Programa daro įrodymą, ne prevenciją: ji pasakys, kad dokumentas pasikeitė; ji nesustabdys pakeitimo ir leidžia pasirašytojui pasirašyti pro klastojimo įspėjimą, sąžiningai užrašydama, ką jis matė. Niekada nesiųsk to ar neaprašyk to kaip daugiau. Tiksliai žinoti, kur riba — ir pasakyti tai aiškiai — pati savaime yra profesinė įgūdis, ir ta, kuria šis takas rūpinosi labiausiai.

Atnaujinimo kelias, jei nori peržengti tą ribą. Tikri skaitmeniniai parašai pakeičia „įvestą vardą + maišą" viešojo rakto kriptografija: kiekvienas pasirašytojas turi privatų raktą (idealiai aparatūroje — lustinėje kortelėje, saugiame elemente, HSM) ir pasirašo dokumento maišą tuo raktu. Bet kas gali patikrinti parašą prieš pasirašytojo viešą raktą, kuris jį susieja su tikra, patikrinta tapatybe. Kad būtų teisiškai kvalifikuotas (eIDAS), tą tapatybę tvirtina sertifikatas iš patikimos Sertifikatų Institucijos, dažnai ant valstybės išduoto žetono, pagal audituotus procesus — su sertifikatų atšaukimu, laiko žymėjimo institucijomis ir ilgalaikiu galiojimu viršuje. Tai kita disciplina, sąmoningai už šio kurso ribų. Bet dabar turi tikslų mentalinį modelį, kurį ji išplečia: SignFlow pririša baitus; kvalifikuotas pasirašymas papildomai pririša tapatybę, kriptografiškai. Maiša, kurią jau apskaičiuoji, yra būtent tai, ką pasirašytų tikras privatus raktas.

Kur nuvesti savo šaką. Pridėk vaidmenis (savininką, galintį deleguoti). Padėk objektų saugyklą už storage.Store jungties ir plėskis į kelis egzempliorius. Apkeisk konsolės pašto siuntėją į Resend ir siųsk tikrus kvietimus. Pridėk atnaujinimo-žetono srautą iš praėjusios pamokos ir pajusk mainus persikeliant. Kiekvienas iš šių turi švarią jungtį, jau laukiančią — nes visa programa buvo pastatyta būti plečiama ir skaitoma tiek pat, kiek paleidžiama.

Baigei serverio pusės taką, ir su juo visus keturis. Gali pastatyti mobilią programą ir jos backend, naršyklės klientą su grynu JS ir tada TypeScript, struktūrinį Go nuo pirmųjų principų, ir dabar pilną serveryje atvaizduojamą interneto programą — įdiegtą, sąžiningą dėl savo ribų ir tavo, kad augintum.