Namų darbas — atakuok žetoną, sulaužyk transakciją
Augina programą. Pridėk kvietimus į savo programą, jei ji turi „pasidalink su kažkuo be paskyros" srautą — kitaip dirbk su SignFlow.
-
Atakuok žetoną, nerask ką atakuoti. Nukopijuok pasirašymo nuorodą ir sudarkyk žetoną — pakeisk simbolį, nutrumpink. Maršrutas išsprendžia žetoną ir neranda eilutės (pats puslapis atkeliaus kitą pamoką). Dabar pažiūrėk į užklausos eilutę: joje nėra dokumento ID. Parašyk du sakinius, lygindamas su L9 trynimu, kur dokumento ID yra URL ir turi būti tikrinamas savininkui. Kokią klaidų klasę leidžia kiekvienas dizainas?
-
Sulaužyk transakciją tyčia. Laikinai perkelk
MarkDocumentSentprieš pasirašytojų ciklą, tada priversk antrąCreateSignernepavykti pakviesdamas dublikatinį el. paštą (UNIQUE (document_id, email)apribojimas jį atmes). Patvirtink, kad dokumentas nepasivertė įsentir jokios pasirašytojų eilutės neįrašytos. Atkurk tvarką. Būtent tai perka viena transakcija. -
Pašalink dublikatus ir patikrink. Pakviesk tą patį adresą du kartus viename teksto lauke, plius vieną šiukšlinį eilutės tekstą (
not-an-email). Patvirtink, kadparseEmailssujungia dublikatą ir atmeta neteisingą, o pasirašytojais tampa tik teisingi, unikalūs adresai. -
Kodėl maišuoti žetoną?
signerslentelė saugotoken_hash, ne žetoną. Tarkim, ji saugotų neapdorotą žetoną ir tavo duomenų bazės atsarginė kopija nutekėtų. Ką galėtų padaryti tos kopijos turėtojas? Dabar paaiškink, kodėl maišos saugojimas daro kopiją bevertę — tas pats argumentas kaip sesijoms ir atstatymams, trečią kartą.
Kita pamoka įžiebia nuorodą: pasirašytojas atveria savo puslapį, peržiūri dokumentą ir pasirašo — ir sutinki sąžiningumo įspėjimą, kuris apibrėžia, kas šis parašas yra ir kas nėra.