Subdomain ɗin gudanarwa baya hana CSRF: dubawa huɗu kafin ƙaddamarwa
Sabon sunan mai masauki sabuwar asali ce, sau da yawa shafi ɗaya, don haka kukis na same-site da sassauƙan fom suna wucewa. Duba token, ƙofar da izini.
Matsar da fuskar gudanarwa zuwa admin.example.com ingantaccen ci gaba ne: yana nisantar da kukis ɗin gudanarwa daga shafukan jama’a, yana ba wa aikace-aikacen biyu ajiya daban, kuma yana ba ka damar tura tsarin cibiyar sadarwa mai tsanani zuwa sunan mai masauki ɗaya. Amma ba kulawar CSRF ba ce, kuma ba ya sa lambar shafin jama’a ta zama lafiya a bar ta buɗe a gaban mai gudanarwa da ya shiga. Rabuwar tana canza abin da burauza ke ɗauka a matsayin iyaka, ba abin da uwar garke ke dubawa ba, don haka yi waɗannan dubawa huɗu kafin ka ce an gama.
Karanta asali da shafi a matsayin kalmomi biyu daban
Asali shi ne tsari, mai masauki da tashar, don haka https://www.example.com da https://admin.example.com asali ne daban. Shafi, a ma’anar SameSite, shi ne tsari da yankin da za a iya yin rajista, don haka waɗannan sunayen biyu yawanci shafi ɗaya ne. Wannan bambancin shi ne dukan tarko: sifar SameSite ba za ta taimake ka ba tsakanin subdomains, domin burauza ba ya ɗaukar buƙatar a matsayin ta tsallaka shafi kwata-kwata. Tura fuskar gudanarwa zuwa wani yanki na daban da za a iya yin rajista, kamar admin-example.net, sannan buƙatar ta zama ta tsallaka shafi, kuma a nan ne SameSite=Lax ko Strict zai fara yin aikin da za ka dogara da shi.
Gwada shi a cikin burauza maimakon yin tunani a kai.
Loda shafin jama’a, buɗe kayan aikin mai haɓakawa, ka duba waɗanne kukis burauza ke haɗawa da buƙatar da aka nufa zuwa mai masaukin gudanarwa. Idan kukin ba shi da sifar Domain, na mai masauki ne kawai kuma yana zama a sunansa; idan yana ɗauke da Domain=example.com, yana tafiya zuwa kowane ɗan uwa, kuma sabon subdomain bai ba ka komai ba don wannan kukin.
Rabawa karanta amsa daga aika buƙata
Manufar asali ɗaya tana iyakance karanta amsoshi tsakanin asali. Ba ta hana aika buƙata ba, kuma ba ta hana fom ɗaukar takaddun shaidar da burauza ke da su ba. Buƙata mai sauƙi, mai nau’in abun ciki na fom ko GET na yau da kullum, ana isar da ita ba tare da dubawa na farko ba; sannan CORS yana yanke shawara ko rubutun da ke kira zai iya karanta amsar. CSRF yana rayuwa gaba ɗaya a gefen aikawa.
Shi ya sa uwar garke ke buƙatar tabbataccen dubawa don ayyukan da ke canza yanayi. Token na daidaitawa da ke da alaƙa da zama, ko kukin aikawa sau biyu da ake kwatantawa a uwar garke, ya rufe lamarin; kwatanta Origin ko Referer ya cancanci ƙarawa a matsayin ƙofa ta biyu amma ba ita kaɗai ba, domin ba kowace buƙata ce ke ɗauke da kanun ba kuma ba kowane wakili ne ke kiyaye shi ba. Jagorar OWASP don hana CSRF tana ɗaukar SameSite a matsayin wani Layer ɗaya cikin da yawa, don wannan dalili daidai.
Yanke shawara abin da ƙofar cibiyar sadarwa ke tabbatarwa da gaske
Lissafin izinin fitowar VPN a gaban mai masaukin gudanarwa kyakkyawan kulawa ne da da’awar ainihi mai rauni. Yana tabbatar da cewa buƙatar ta fito daga adireshin da VPN ke bayarwa, wanda duk waɗanda ke kan wannan fitowar za su iya raba, kuma ba ya faɗin komai game da wane mutum ko na’ura ke bayansa. Ɗauke shi a matsayin matatar shiga, ba a matsayin tabbatarwa ba.
Ka kiyaye shi ba tare da dogaro da dubawan matakin buƙata ba. Idan lissafin shi ne kawai abu tsakanin maharin da wurin ƙarshe da ke canza yanayi, hanya ɗaya da ba a daidaita ba, abokin ciniki ɗaya na split-tunnel ko kwamfutar hannu ɗaya da aka aro suna cire kulawar gaba ɗaya.
Yi rikodin ƙin da suka fito daga wajen jeri da ake tsammani. Fashewarsu ita ce alama mafi amfani cewa wani yana bincika iyakar da ka gina, kuma shiru alama ce cewa ba a isa matatar ba kwata-kwata.
Kiyaye kukis, shiga da izini a fili
Girman kukin ne ke yanke yawancin sakamako. Kukin yankin iyaye ana aika shi zuwa mai masaukin gudanarwa, don haka allurar rubutu a shafin jama’a na iya aiki da zamar mai gudanarwa; kukin mai masauki kawai ba zai iya ba. Fi son sifar mai masauki kawai, ƙara sifar Secure, kuma yi amfani da prefix __Host- inda dandamali ke goyon bayansa, domin wannan prefix yana buƙatar Secure, Path=/ kuma babu sifar Domain. Karanta kanun amsa ba tulun kuki ba: Set-Cookie: __Host-admin_session=...; Secure; Path=/; HttpOnly; SameSite=Lax, ba tare da sifar Domain ba. Burauza yana watsar da kukin __Host- mai Domain, don haka kukin da har yanzu ake gani a kan masaukai na uwa hujja ce cewa ba a taɓa amfani da prefix ɗin ba.
Sannan ka kiyaye izini a uwar garke, ga kowace buƙata, a kowace ƙarshen gudanarwa, ba a lokacin shiga kawai ba. Buƙatar da ta fito daga hanyar sadarwa da aka yarda da ita har yanzu dole a tabbatar da ita kuma a ba ta izinin aikin da take nema; sunan mai masauki ba mai wasa ba ne. Idan aikace-aikacen jama’a da na gudanarwa suna raba hanyar shiga ko ajiyar zama, rubuta wannan dangantakar, domin ita ce hanya mafi guntu daga kuskuren shafin jama’a zuwa aikin gudanarwa.
Sake duba iyakar bayan rabuwar
Gudanar da gwaje-gwajen da ba su da kyau, ba kawai hanyar farin ciki ba: fom ɗin tsallaka shafi ba tare da token dole a ƙi shi, token daga wata zama dole a ƙi shi, kuma babu GET da zai canza yanayi. Duba sifofin kuki a kayan aikin mai haɓakawa, tabbatar cewa duba Origin yana tashi kan buƙatar da ba ta dace ba, kuma gwada mai masaukin gudanarwa daga wajen jeri VPN don ganin matatar tana aiki.
Babu ɗaya daga cikin waɗannan da ke kawar da lahanin XSS a cikin aikace-aikacen gudanarwa kansa. Sunan mai masauki daban iyakar keɓewa ce ta gefen burauza mai ainihin daraja, kuma ba madadin hana aiwatar da lambar da ba ta da aminci ba ne ko kare buƙatu a gefen uwar garke. Bayan rabuwar jerin ya fi guntu fiye da yadda yake gani: asali daban, kuki na mai masauki kawai, token a kowace canji, matatar shiga da ba ka yarda da ita a matsayin ainihi ba, da izinin da aka yanke ga kowace buƙata.