Formola pubblika li qatt ma titkellem man-netwerk privat xorta tipproduċi data li n-netwerk privat irid jiġġudika. Il-mina tibdel biss min iċempel lil min. Kull ħaġa wara t-tniżżil hija deċiżjoni ta' importazzjoni, u din tappartjeni għan-naħa privata. Dan il-mixi jsegwi sottomissjoni waħda mill-browser sa rekord intern ikkummissjonat.

Ibda Minn Fejn Tinżel is-Sottomissjoni

Il-browser jibgħat lil endpoint pubbliku, li jikteb ringiela f'maħżen tad-dħul ikkontrollat u ma jirritornax aktar minn konferma. Dak il-maħżen huwa l-punt tal-konsenja, u għandu jkun l-unika ħaġa li s-saff pubbliku jista' jikteb fih. Żomm il-payload mhux ipproċessat hemmhekk bla ma tbiddlu, flimkien mal-ħin li wasal fih u identifikatur stabbli tar-rekord.

Imbagħad ħaddiem privat jiġbed ir-ringieli pendenti mill-mina u jiddeċiedi x'jagħmel b'kull waħda. Jaħdem taħt l-identità tiegħu stess, u dan huwa s-suġġett tat-taqsima li jmiss.

curl --silent --fail \
  --cert /etc/importer/client.crt --key /etc/importer/client.key \
  "https://intake.corp.internal/api/pending?limit=20" \
  -o /var/lib/importer/pending.json

Agħti lill-Importatur Biss l-Awtorità li Jeħtieġ

Il-proċess tal-web pubbliku u l-identità li tikteb fl-applikazzjoni interna għandhom ikunu żewġ prinċipji differenti. Server pubbliku m'għandux bżonn amministrazzjoni interna sempliċement għax irid iwassal data tal-formola, u kont wieħed kondiviż għaż-żewġ naħat ibiddel kull bug tal-web fi kitba interna. Ħareġ lill-ħaddiem il-kredenzjali tiegħu stess, illimita lilha għal operazzjoni waħda ta' importazzjoni, u rreġistra liema prinċipju wettaq kull importazzjoni. Dik is-separazzjoni hija dik li tagħmel il-fruntiera tal-mina sinifikanti minflok dekorattiva.

Illimita wkoll minn liema sors il-ħaddiem jista' jaqra. Jekk l-implimentazzjoni tuża kju jew servizz ta' trasferiment, dak is-servizz iżomm l-awtentikazzjoni u l-politika ta' aċċess tiegħu stess, għax il-VPN ma jawtentikax xejn ġewwa l-payload.

Funzjoni ta' żmien qasir mhijiex eżentata mill-istess reviżjoni. Waqt li tkun qed taħdem, il-pożizzjoni tan-netwerk tagħha u l-kredenzjali tagħha għadhom jagħtu awtorità, u ħajja iqsar tonqos biss it-tieqa. Il-ħajja mhijiex sostitut għad-deċiżjoni dwar liema operazzjonijiet l-identità tista' twettaq.

Ivvalida Qabel Ma Jinbidel Xejn Intern

L-oqsma tal-formola pubblika huma test ikkontrollat mill-attakkant sakemm jintwera l-kuntrarju, u il-gwida ta' OWASP dwar il-validazzjoni tal-input tgħodd il-flussi tal-backend fost is-sorsi mhux affidabbli għal dan l-istess raġuni. Trasferiment ikkriptat ifisser li l-bytes waslu sħaħ, mhux li jiddeskrivu talba permessa. Ipparsja u vvalida qabel kull pass privileġġjat, sabiex ringiela ħażina qatt ma tasal għal mogħdija tal-kodiċi li tista' taġixxi.

Iddefinixxi l-oqsma permessi, il-formati tagħhom, id-daqsijiet tagħhom u r-regoli tan-negozju li għandhom jintlaħqu. Data tista' tkun ifformata sew u xorta tkun ħażina għall-operazzjoni mitluba, u payload li jsemmi kont intern jew stat ta' approvazzjoni m'għandux ikun jista' jagħti lilu nnifsu lanqas waħda minnhom.

Ibgħat ringieli miċħuda lil riżultat ta' reviżjoni minflok ma taqta' x'inhi l-korrezzjoni jew tgħaddihom lil shell jew interface tal-bażi tad-data mhux ipproċessata. Irreġistra l-identifikatur tar-rekord u r-regola li falliet, mhux kull qasam li ttajpja l-applikant.

Agħmel Punt ta' Irtentattiv f'Operazzjoni Waħda

Jekk ir-rekord submission-1042 jinġibed darbtejn għax l-ewwel konferma ntilfet, il-ħaddiem jeħtieġ mod dejjiemi biex jagħraf ir-rekord tas-sors u r-riżultat ikkummissjonat tiegħu. Skeda li tmexxi x-xogħol darba ma tistabbilixxix li kull ringiela ġiet applikata darba. Konsenja doppja hija normali, għalhekk id-disinn irid jassorbiha.

Uża t-transazzjoni u l-mekkaniżmu tal-immaniġġjar tad-duplikati tal-applikazzjoni interna stess, u żomm l-identifikatur tas-sors, ir-riżultat u l-konferma f'sekwenza waħda koerenti. Ikkonferma biss wara li l-operazzjoni maħsuba tkun ikkummissjonata jew assenjata b'mod dejjiemi, u qatt ma tħassar ir-ringiela tad-dħul sempliċement għax il-bytes tniżżlu.

Imbagħad ipprova dan bi tliet fixtures: ringiela valida, ringiela ifformata ħażin, u l-istess identifikatur tas-sors ikkontrollat ikkonsenjat darbtejn. Kull waħda tgħaddi mill-istess endpoint li juża l-ħaddiem.

for f in fixtures/valid-submission.json fixtures/bad-date.json; do
  curl --silent --fail --cert /etc/importer/client.crt \
    -X POST --data @"$f" https://intake.corp.internal/api/records
done
curl --silent --fail --cert /etc/importer/client.crt \
  -X POST --data @fixtures/valid-submission.json https://intake.corp.internal/api/records

L-ewwel żewġ ringieli għandhom jispiċċaw fi stati interni differenti, u t-tielet għandha tirritorna l-identifikatur diġà kkummissjonat għal dak ir-rekord tas-sors minflok ma toħloq tieni wieħed. Kull ħaġa oħra tfisser li l-importazzjoni għadha mhix ripetibbli.

Artikli relatati