Is feabhsú fíor é an comhéadan riaracháin a bhogadh go admin.example.com: coinníonn sé fianáin an riaracháin amach ó leathanaigh phoiblí, tugann sé taiscí scoir ar leith do na dhá fheidhmchlár agus ligeann sé duit polasaí líonra níos déine a dhíriú ar aon ainm óstach amháin. Ní rialú CSRF é áfach, agus ní dhéanann sé cód an tsuímh phoiblí sábháilte lena fhágáil oscailte os comhair riarthóra atá logáilte isteach. Athraíonn an scaradh an rud a mheasann an brabhsálaí mar theorainn, ní an rud a sheiceálann an freastalaí, mar sin déan na ceithre sheiceáil seo sula ndeir tú go bhfuil sé críochnaithe.

Léigh bunús agus suíomh mar dhá fhocal éagsúla

Is é bunús ná scéim, óstach agus port, mar sin is bunúis éagsúla iad https://www.example.com agus https://admin.example.com. Is é suíomh, i gciall SameSite, scéim móide fearann inrianaithe, mar sin is iondúil gurb é an suíomh céanna an dá ainm óstach sin. Is é an difríocht sin an gaiste ar fad: ní chabhróidh an tréith SameSite leat idir fho-réimsí deirfiúracha, mar ní mheasann an brabhsálaí an t-iarratas mar rud idir-shuímh ar chor ar bith. Dírig an comhéadan riaracháin chuig fearann inrianaithe atá difriúil i ndáiríre, mar admin-example.net, agus éiríonn an t-iarratas idir-shuímh i ndáiríre, agus is ansin a thosaíonn SameSite=Lax nó Strict ag déanamh oibre ar féidir leat brath air.

Tástáil sa bhrabhsálaí é seach a bheith ag réasúnaíocht air.

Luchtaigh an suíomh poiblí, oscail uirlisí an fhorbróra agus féach cé na fianáin a cheanglaíonn an brabhsálaí le hiarratas chuig an óstach riaracháin. Mura bhfuil tréith Domain ag an bhfianán, níl sé ach don óstach agus fanann sé ar a ainm féin; má iompraíonn sé Domain=example.com, téann sé chuig gach deirfiúr, agus níor thug an fo-fhearann nua aon rud duit don fhianán sin.

Scar léamh an fhreagra ó sheoladh an iarratais

Cuireann an polasaí comhbhunúis srian ar léamh freagraí idir bhunúis. Ní choiscíonn sé iarratas a sheoladh, agus ní choiscíonn sé foirm ó dhintiúir a iompar atá ag an mbrabhsálaí cheana. Seachadtar iarratas simplí, ceann le cineál ábhair foirme nó GET simplí, gan réamhsheiceáil; cinneann CORS ansin an féidir leis an script ghlaoigh an freagra a léamh. Maireann CSRF go hiomlán ar thaobh an tseolta.

Sin é an fáth a dteastaíonn seiceáil shoiléir ón bhfreastalaí d’oibríochtaí a athraíonn staid. Clúdaíonn comhartha sioncronaithe atá ceangailte leis an seisiún, nó fianán seolta dúbailte a chuirtear i gcomparáid ar an bhfreastalaí, an cás; is fiú comparáid Origin nó Referer a chur leis mar dhara geata ach ní mar an t-aon cheann amháin, mar ní iompraíonn gach iarratas an ceannteideal agus ní chaomhnaíonn gach seachfhreastalaí é. Measann treoir OWASP chun CSRF a chosc SameSite mar shraith amháin i measc roinnt, go díreach ar an gcúis sin.

Cinntigh cad a chruthaíonn an geata líonra i ndáiríre

Is rialú maith é liosta ceadaithe d’imeachtaí VPN os comhair an óstaigh riaracháin agus is éileamh aitheantais lag é. Cruthaíonn sé gur tháinig an t-iarratas ó sheoladh a thugann an VPN, ar féidir le gach duine ar an imeacht sin é a roinnt, agus ní deir sé faic faoin duine nó faoin bhfeiste atá taobh thiar de. Caith leis mar scagaire iontrála, ní mar fhíordheimhniú.

Coinnigh é neamhspleách ar na seiceálacha ag leibhéal an iarratais. Má tá an liosta ar an aon rud idir ionsaitheoir agus críochphointe a athraíonn staid, baineann bealach amháin míchumraithe, cliant split-tunnel amháin nó ríomhaire glúine faighte ar iasacht an rialú go hiomlán.

Logáil diúltuithe ó lasmuigh de na raonta a bhfuiltear ag súil leo freisin. Is é pléasc acu an comhartha is úsáidí go bhfuil duine éigin ag iniúchadh na teorann a thóg tú díreach, agus is é an ciúnas an comhartha nach sroichtear an scagaire ar chor ar bith.

Coinnigh fianáin, logáil isteach agus údarú soiléir

Cinneann scóip an fhianáin an chuid is mó den toradh. Seoltar fianán fearainn tuismitheora chuig an óstach riaracháin, mar sin is féidir le instealladh scripte ar an suíomh poiblí gníomhú le seisiún riarthóra; ní féidir le fianán óstaigh amháin. Roghnaigh an fhoirm óstaigh amháin, cuir an tréith Secure leis agus úsáid an réimír __Host- áit a dtacaíonn an t-ardán léi, mar éilíonn an réimír sin Secure, Path=/ agus gan aon tréith Domain. Léigh ceannteideal an fhreagra seach an próca fianán: Set-Cookie: __Host-admin_session=...; Secure; Path=/; HttpOnly; SameSite=Lax, gan tréith Domain. Caitheann brabhsálaí fianán __Host- a iompraíonn Domain, mar sin is cruthúnas é fianán a fheictear fós ar óstaigh deirfiúracha nár cuireadh an réimír i bhfeidhm riamh.

Ansin coinnigh an t-údarú ar an bhfreastalaí, in aghaidh an iarratais, ar gach críochphointe riaracháin, ní hamháin ag logáil isteach. Caithfear iarratas ó líonra ceadaithe a fhíordheimhniú agus a údarú fós don oibríocht a iarrann sé; ní gníomhaí é ainm an óstaigh. Má roinneann na feidhmchláir phoiblí agus riaracháin sreabhadh logála isteach nó stór seisiún, scríobh an gaol sin síos, mar is é an bealach is giorra ó locht ar an suíomh poiblí go gníomh riaracháin.

Athsheiceáil an teorainn tar éis an scartha

Rith na tástálacha diúltacha, ní hamháin an bealach sona: caithfear foirm idir-shuímh gan chomhartha a dhiúltú, caithfear comhartha ó sheisiún eile a dhiúltú, agus ní cheart d’aon GET staid a athrú. Seiceáil tréithe na bhfianán in uirlisí an fhorbróra, deimhnigh go dtéann an tseiceáil Origin chun cinn ar iarratas nach bhfuil ag teacht, agus bain triail as an óstach riaracháin ó lasmuigh de raon an VPN chun an scagaire a fheiceáil ag obair.

Ní bhaineann aon rud díobh seo locht XSS istigh sa fheidhmchlár riaracháin féin. Is teorainn leithlise ar thaobh an bhrabhsálaí é ainm óstach ar leith a bhfuil fíorluach aige, agus ní ionadaí é do chosc ar fhorghníomhú cóid mhíshábháilte ná do chosaint iarratas ar thaobh an fhreastalaí. Tar éis an scartha tá an liosta níos giorra ná mar a fheictear: bunús ar leith, fianáin óstaigh amháin, comhartha ar gach athrú, scagaire iontrála nach bhfuil muinín agat as mar aitheantas, agus údarú a chinntear in aghaidh an iarratais.

Ailt ghaolmhara