Ҳамла ба системаҳои пушти сар, ки ба мо имкон медиҳад, ки ба дархостҳои тарафи сеюм ворид шавем

ошкор карда шуд тафсилоти ҳамлаи нав ба сайтҳое, ки модели пешрафтаи пушти сарро истифода мебаранд, ба монанди онҳое, ки тавассути шабакаҳои интиқоли мундариҷа, мувозинатҳои бор ё прокси кор мекунанд. Ҳамла имкон медиҳад, ки тавассути фиристодани дархостҳои муайян ба мундариҷаи дархостҳои дигаре, ки дар як ришта байни фронт ва пушти сар коркард шудаанд, ворид карда шавад. Усули пешниҳодшуда барои ташкили ҳамла бомуваффақият истифода шуд, ки имкон дод параметрҳои аутентификатсияи корбарони хидмати PayPal, ки ба муҳаққиқон дар чаҳорчӯби барномаи огоҳӣ дар бораи мавҷудияти осебпазирии навсозӣ тақрибан 40 ҳазор доллар пардохт кард. Ҳамла инчунин ба сайтҳое дахл дорад, ки шабакаи интиқоли мундариҷаи Akamai истифода мебаранд.

Моҳияти мушкилот дар он аст, ки фронтҳо ва пушти сарҳо аксар вақт сатҳи гуногуни дастгирии протоколи HTTP-ро таъмин мекунанд, аммо дар айни замон дархостҳои корбарони гуногунро ба як канали умумӣ фаро мегиранд. Барои пайваст кардани дархостҳои қабулкунандаи фронт ва дархостҳои коркарди пушти сар, пайвасти дарозмуддати TCP муқаррар карда мешавад, ки тавассути он дархостҳои корбар интиқол дода мешаванд, қад-қади занҷир паси дигар интиқол дода мешаванд ва тавассути протоколи HTTP ҷудо карда мешаванд. Барои ҷудо кардани дархостҳо, сарлавҳаҳои "Content-Length" (ҳаҷми умумии маълумотро дар дархост муайян мекунад) ва "Интиқол-рамзгузорӣ: пора"(ба шумо имкон медиҳад, ки маълумотро қисмҳо бо муайян кардани блокҳои андозаҳои гуногун дар формати "{size}\r\n{block}\r\n{size}\r\n{block}\r\n0" интиқол диҳед).

Мушкилот ба миён меояд, ки агар фронтент танҳо "Content-Length" -ро дастгирӣ кунад, аммо "Интиқоли рамзгузорӣ: пора" -ро нодида гирад (масалан, Akamai CDN ин корро кард) ё баръакс. Агар Transfer-Encoding: chunked аз ҳарду ҷониб дастгирӣ карда шавад, хусусиятҳои амалисозии таҳлилгарони сарлавҳаи HTTP метавонанд барои ҳамла истифода шаванд (масалан, вақте ки охири пеш хатҳоро ба мисли "Интиқоли кодгузорӣ: xchunked", "Интиқоли рамзгузорӣ: порчаҳо нодида мегирад) ”, “Интиқоли-рамзгузорӣ” :[табъ]қисмҳо”, “X: X[\n]Интиқоли-рамзгузорӣ: порча”, “Интиқоли-рамзгузорӣ[\n]: пора” ё “Интиқоли-рамзгузорӣ: порча”, ва пуштибонӣ онҳоро бомуваффақият коркард мекунад).

Дар ин ҳолат, ҳамлакунанда метавонад дархостеро фиристад, ки ҳам сарлавҳаҳои "Мундариҷа-Дарозии" ва ҳам "Интиқол-Рамзгузорӣ: пора-пора"-ро дар бар мегирад, аммо андозаи дар "Мӯҳтаво-Дарозии" ба андозаи занҷири порашуда мувофиқат намекунад. аз арзиши воқеӣ хурдтар аст. Агар фронтент дархостро мувофиқи "Content-Length" коркард ва ирсол кунад ва пуштибон интизори анҷоми блок дар асоси "Интиқоли рамзгузорӣ: порчаҳо" бошад, пас анҷоми маълумот дар асоси "Интиқоли рамзгузорӣ: порчаҳо" хоҳад буд пештар муайян карда шавад ва думи боқимондаи дархост ҳамлакунанда дар оғози дархости навбатӣ бошад, яъне. ҳамлакунанда метавонад маълумоти худсарона ба оғози дархости каси дигаре, ки баъдан интиқол дода мешавад, замима кунад.

Ҳамла ба системаҳои пушти сар, ки ба мо имкон медиҳад, ки ба дархостҳои тарафи сеюм ворид шавем

Барои муайян кардани мушкилот дар комбинатсияи истифодашудаи frontend-backend, шумо метавонед дархостеро ба монанди ин тавассути frontend фиристед:

POST /дар бораи HTTP/1.1
Мизбон: example.com
Интиқол-рамзгузорӣ: пора
Давомнокии мундариҷа: 4

1
Z
Q

Мушкилот вуҷуд дорад, ки агар пуштибон дархостро фавран коркард накунад ва омадани блоки ниҳоии маҳдудкунандаи сифри додаҳои порашударо интизор шавад. Барои тафтиши пурратар тайёр карда шудааст як утилитаи махсус, ки инчунин усулҳои имконпазири пинҳон кардани сарлавҳаи "Интиқоли рамзгузорӣ: пора" -ро аз пештара меозмояд.

Гузаронидани ҳамлаи воқеӣ аз имкониятҳои сайти ҳамлашуда вобаста аст, масалан, ҳангоми ҳамла ба веб-барномаи Trello, шумо метавонед оғози дархостро иваз кунед (маълумотро ба монанди “PUT /1/members/1234... x=x&csrf” иваз кунед. =1234&username=testzzz&bio=cake”) ва паём фиристед, аз ҷумла дархости аслии корбари тарафи сеюм ва кукии аутентификатсия, ки дар он нишон дода шудааст. Барои ҳамла ба saas-app.com, иваз кардани рамзи JavaScript дар посух тавассути иваз кардани он дар яке аз параметрҳои дархост имконпазир шуд. Барои ҳамла ба redhat.com, коркарди дохилӣ барои масир ба вебсайти ҳамлакунанда истифода шуд (дархости шакли "POST /search?dest=../assets/idx?redir=//[почтаи электронӣ ҳифз карда шудааст]/ HTTP/1.1").

Истифодаи усул барои шабакаҳои интиқоли мундариҷа имкон дод, ки сайти дархостшуда бо иваз кардани сарлавҳаи "Host:" иваз карда шавад. Ҳамла инчунин метавонад барои заҳролуд кардани мундариҷаи системаҳои кэшкунии мундариҷа ва истихроҷи маълумоти махфии кэшшуда истифода шавад. Қуллаи ин усул ташкили ҳамла ба PayPal буд, ки имкон дод паролҳое, ки корбарон ҳангоми тасдиқи аутентификатсия фиристодаанд (дархости iframe барои иҷрои JavaScript дар заминаи саҳифаи paypal.com/us/gifts тағир дода шуд, барои ки CSP (Сиёсати амнияти мундариҷа) татбиқ карда нашудааст).

Ҷолиб он аст, ки дар соли 2005 вуҷуд дошт пешниҳод кардааст техникаи қаллобии дархости аслан шабеҳест, ки ба шумо имкон медиҳад, ки маълумотро дар кэшкунии прокси (Tomcat, squid, mod_proxy) қаллобӣ кунед ё бо роҳи муайян кардани якчанд дархостҳои "GET" ё "POST" дар як сеанси HTTP гузаред.

Манбаъ: opennet.ru

Илова Эзоҳ