Xefilîfa Oauth | Meriv çawa di serîlêdana weya webê de destûrnameya ewledar pêk tîne

Anonim
Xefilîfa Oauth | Meriv çawa di serîlêdana weya webê de destûrnameya ewledar pêk tîne 2740_1

Dê ev gotar bi xetereyên baş-naskirî re mijûl bibe. Xwendevan jî dê fêr bibin ka meriv çawa destûrdayîna ewlehî û ewlehî di serlêdana malperê de bicîh tîne.

Oauth protokolek pêbawer e, lê asta ewlehiya wê bi piranî bi hişmendiya pêşdebirên malperê ve girêdayî ye dema ku destûrnameyê bicîh bîne. Ev vê mijarê ji bo profesyonelên ewlehiya agahdariyê zehf girîng dike. Ew hewce ne ku astek bilind a parastina hesabên bikarhênerên xwe peyda bikin. Wext e ku meriv bi bijîjkên bi bandor re nas bike ku dê alîkariyê bide xetera firotina belengaz a OAuth kêm bike.

Pêşkêş

Protokola OAuth 2.0 niha bi berfirehî di serîlêdanên cihêreng de tê bikar anîn. Bikaranîna wê, navbeynkariya bikarhênerek hêsantir dibe, hêsantir û destûrnameyek hêsantir û destûrnameyê bi rêbazên kevneşopî yên ji bo têketina navê bikarhêner û şîfreyê. Bi pêkanîna rast û fikirîn, dê protokola xwerû ji destûrnameya kevneşopî ewletir be, ji ber ku bikarhêneran ne hewce ye ku daneyên hesabê yên bi serîlêdana sêyemîn re parve bikin da ku bigihîjin çavkaniyek taybetî. Bikarhêner bi gelemperî tercîh dikin ku bi karanîna hesabên Google-ê, facebook an LinkedIn bikar bînin, her gava ku hûn hewce ne ku li ser hin malperê qeyd bikin hesabek nû bikin. Bi vî rengî, protokola oauth pir mezin jiyana me hêsan dike.

Bi gelemperî, Pêşkêşkerên Xizmeta OAuth pir pêbawer in. Têkeve Bi Hesabê Google an Facebook-ê hestek ewlehiyê heye, û rast e. Protokol bi pisporan bi baldarî tê ceribandin. Hemî xeletiyên berdest her gav bi tîmê pêşdebiran zû têne rast kirin. Lêbelê, hêja ye ku hesta ewlehiya bêkêmasî dikare derew be.

Pêşkêşvanên karûbarê OAuth pêşdebirên serlêdanê gelek sedemên derketinê hene ku ewlehiya bernameyên wan bidin. Di rastiyê de, karûbarê xwerû ya destpêkê parastî, bi çewt di pêvajoya sazkirina wê de bi çewt hatiye pêkanîn, dibe ku ji bo introjker bibin armancek hêsan. Precupacy wusa dê rê li ber diziya daneyên kesane yên bikarhêneran bike.

Piştre, divê hûn xetereyên herî gelemperî yên ku di serlêdanên partiya sêyemîn de têne dîtin ku protokola OAuth bicîh bikin ku destûr bidin bikarhênerên xwe. Divê were bibîranîn ku protokol bixwe ewle û pêbawer e. Tenê piştî pêkanîna çewt, ew ji êrişên hacker re xeternak dibe.

OAuth TOCKY TOCKE HEADER REFERE

Dema ku serîlêdanê ji hêla bikarhêner ve li ser navê OAuth destûrê dide, kesek ji bo kontrolkirina xwe ji bo kontrolkirina wê ya paşîn ve tê şandin. Ger di dema xebatê de bikarhêner dê li rûpelek din were veguheztin, dê kodê "referans" li ser daxwaziya HTTP "bi referans" were dîtin. Bi vî rengî, kod dê li ser malpera derve were, ku dê daneyên bikarhêner li ser servera OAuth tomar bike.

Nîşe: Sernavê referansê sernavek pirsa HTTP e, ew ji nû ve mêvandarê URL-ê ji ku daxwazê ​​tê şandin.

Ji bo nermkirina encamên vê qelsiyê nerm bikin, divê pêşdebiran piştrast bike ku serlêdana malperê wê însanek HTML nagire. Heke injeksiyon hatin tesbît kirin, êrişker bi hêsanî dikare tagê wêneyê li ser servera xwe ya malperê bicîh bike û rêyek bibîne ku bikarhêner li ser red bike. Bi vî rengî, ew ê fersendê bistîne ku koda ji sernavê "Referker" ê daxwaziya HTTP-ê dizîne.

OAuth TOCKY TOCKE bi karanîna parameterê REDIRECTI_URI

Serlêdan bi şandina daxwaznameyek ji Server OAuth re pêvajoya destûrnameyê dide destpêkirin:

https://www.example.com/signin/Authorize. .. Babişiwarên://demo.example.com/loginsuccessful.

Pirsîn her gav parametreya "Redirect_uri" tê de tê bikar anîn ku ji hêla serverê OAuth ve hatî bikar anîn da ku piştî ku bikarhêner razîbûna xwe dan serîlêdanê. Ger nirxa vê pîvanê neyê kontrol kirin an na kontrol kirin, êrişker bi hêsanî dikare biguheze û daxwazê ​​li ser malpera xwe biguhezîne, li wir bernameyek taybetî ya ji bo karanîna token bikar tîne û bigihîje çavkaniyek sînorkirî.

https://www.example.com/signin/authorize. .. Babişiwarên Dolandî-Elppps://localhost.evil.com.

Carinan urlên wekhev têne asteng kirin. Rişker dikare daneyên wergirtî li ser URL-ya vekirî, wusa derxe:

https://www.example.com/oauth20_authorize.srf? - her roj pusing

An jî ev:

https://www.example.com/oauth2/Authorize? [...]% irect_uri = https% 3A% 2f% 2fapps.facebook.com% 2fattacker% 2f.

Dema ku OAuth bicîh bikin, hûn çu carî nekarin tevahiya domains di navnîşa spî de bicîh bikin. Tenê çend URL-ê divê were zêdekirin li ser "Redirect_uri" ne ji nû ve daxwazek ji bo sererastkirina vekirî were rakirin.

Fêrbûna daxwazên xaçerêya

Dibe ku ji bo daxwazkariyek intersight çêbibe dema ku êrişker di çêkirina mexdûran de biserkeve da ku li ser girêdana xwe û, bi vî rengî, ji bo çêkirina daxwazek ku ew ne diçû ku ew nekeve. Fêrkirina daxwazên xaçparêz bi gelemperî bi token CSRF re, ku bi danişîna bikarhêner re têkildar e, nerm e. Ew ji serlêdanê re dibe alîkar ku kesê / a / a ku daxwazê ​​şandiye kontrol bike. Parzûna "Dewlet" di protokola OAuth de wekî token CSRF xizmet dike.

Ew hêja ye ku meriv çawa êrîşa CSRF li ser oauth tête kirin û wekî "statûya" parameter dikare were bikar anîn da ku bandorên xeteriyê kêm bike.

Hacker serîlêdana malperê vedike û pêvajoya destûrnameyê dide dest pê kirin da ku bigihîje pêşkêşvanê karûbarê ku bi karanîna OAuth bikar tîne. Serlêdan ji bo gihîştina ku divê were peyda kirin pêşkêşkarek karûbarê daxwaz dike. Hacker dê li ser malpera pêşkêşvanê karûbarê karûbarê were veguheztin, ku hûn bi gelemperî hewce ne ku navê bikarhêner û şîfreya xwe binivîse da ku destûr bide. Di şûna wê de, hacker vê daxwazê ​​digire û pêşî lê digire û url xwe xelas dike. Hacker hinekî dibe sedema mexdûran da ku vê URL veke. Ger mexdûr bi karanîna hesabê xwe ve têkeve pergala pêşkêşkarê karûbarê karûbarê bikar anîn, wê hingê pêbaweriyên wê dê werin bikar anîn da ku kodek destûrnameyê bide. Koda destûrnameyê veguherîne nîşana gihîştinê. Naha hesabê Hacker di serlêdanê de destûr e. Ew dikare bigihîje hesabê qurbanî.

Ji ber vê yekê, ez çawa dikarim pêşî li vê rewşê nekim parameterê "Dewlet"?

Pêdivî ye ku serlêdan nirxek çêbike ku hinekî li ser bingeha hesabê çavkaniyê ye (mînakî, bikarhênerê bikarhênerê bikar bînin). Ew ne girîng e ku ew çi ye, tiştê sereke ev e ku nirx bêhempa ye û bi karanîna agahdariya taybet di derbarê bikarhênerê xwerû de. Ew ji parameterê "Dewlet" tê veqetandin.

Ev nirx dema sererastkirin ji pêşkêşkarê karûbarê re tê veguheztin. Thecar hacker mexdûran vexwendin da ku URL-yê, ya ku wî girtiye veke.

Koda destûrnameyê tê şandin û ji civîna li gorî parameterê "Dewlet" re vedigere muwekîlê.

Xerîdar li ser bingeha agahdariya danişînê nirxek parameter çêdike û ew bi nirxa "dewletê" re, ku ji daxwaznameya destûrnameyê ji pêşkêşvanê karûbarê re hatî şandin, berhev dike. Vê nirxê di pirsa "Dewleta" ya li ser pirsê de nabe, ji ber ku ew tenê li ser bingeha agahdariya di derbarê civîna heyî de hatî çêkirin. Wekî encamek, nirxa wergirtî ji hêla pergalê ve nayê pejirandin.

Dema ku OAuth tê de qewimandinên xwerû (xaçerêya xaçerê_uri "ya xwerû, mîhenga sereke ya xwerû ya xwerû (kilîta" Koda destûrnameyê dikare ji yekê zêdetir carek were bikar anîn da ku hûn tokenên gihiştinê derxînin). Van xetereyan ji yên ku li jor hatine diyarkirin kêmtir hevpar in, lê ew wan kêm xeternak nake. Pêşkêşker divê hemî pratîkên pêwîst nas bike da ku karûbarê pêbawer a serlêdana wê ya malperê peyda bike.

Nivîskarê wergera wergerandî: Simon saliba.

Giring! Agahdarî bi tenê ji bo armancên akademîk. Ji kerema xwe bi qanûnan re tevbigerin û vê agahiyê ji bo armancên neqanûnî bicîh nekin.

Materyona balkêştir li ser Cisoclub.ru. Subscribe ji me re: Facebook | VK | Twitter | Instagram | Telegram | Zen | Peyamnenger | ICQ NEW | YouTube | Firt.

Zêdetir bixwînin