Requests: рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг URL рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рджрд┐рд╕ре░ 2019  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: psf/requests

рдЬрд┐рди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдореИрдВ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдкрде рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓рдХреНрд╖реНрдп URL рдЖрдорддреМрд░ рдкрд░ https://example.com/../../path ред рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдЬреАрдИрдЯреА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЙрд╕ рдпреВрдЖрд░рдПрд▓ рдХреЛ рдиреАрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдирддреАрдЬрддрди, рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред

r = requests.get('https://example.com/../../path')
print(r.url)
# https://example.com/path

curl , рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ: --path-as-is ред рддреЛ, рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ requests рдмрд░рд╛рдмрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рддреИрдпрд╛рд░ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ

url = "http://example.com/../something.txt"
s = requests.Session()
req = requests.Request(method='POST' ,url=url, headers=headers, data=data)
prep = req.prepare()
prep.url = url
r = s.send(prep, verify=False)

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

@EDjur рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЙрдкрд╛рдп рдЬрд╛рдирддреЗ рд╣реИрдВ?

рддреИрдпрд╛рд░ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ

url = "http://example.com/../something.txt"
s = requests.Session()
req = requests.Request(method='POST' ,url=url, headers=headers, data=data)
prep = req.prepare()
prep.url = url
r = s.send(prep, verify=False)

@akmalhisyam рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@akmalhisyam рдпрд╣рд╛рдБ рд╕рд╣реА рд╣реИред рдпрджрд┐ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреБрдЫ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рддреИрдпрд╛рд░ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдо рддреМрд░ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ReimarBauer picture ReimarBauer  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

brainwane picture brainwane  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tiran picture tiran  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

iLaus picture iLaus  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

NoahCardoza picture NoahCardoza  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ