Dave
Dave

Reputation: 11

Escaping string in json dictionary python request

So I've got a python application that is using requests.post to make a post request with json headers, body info, etc.

Problem is that in my dictionary that gets sent as headers, I have a variable that often contains character groups like %25"" or "%2F", etc. I've seen this cause problems before if sent in body data, but that can be fixed by sending the body data as a sting rather than a dictionary. Haven't figured out how to make this work with the headers though, as you can't simply delimit the parameters with an ampersand like in body data.

How do I make sure that my cookie value is not altered in the process of the post request?

For instance, headers : Host : blahblah.com Connection : Keep-Alive Cookie : My sensitive string with special characters etc.

Note : Nothing server-side can be changed. The python application is being used for hired pentesting services.

Upvotes: 0

Views: 545

Answers (1)

ti7
ti7

Reputation: 18866

A common technique for sending data that becomes a mess when transmitted is to encode it, especially as base64

Sender:

import base64
...
encoded_data = "base64:{}".format(base64.b64encode(data))

Receiver:

import base64
...
if encoded_data.startswith("base64:"):
    data = base64.b64decode(encoded_data.split(':')[1])

Upvotes: 2

Related Questions