Возможна ли утечка данных cookies?

Рейтинг: 0Ответов: 1Опубликовано: 03.08.2023

Для отправки post запроса методом requests.post() требуется передать 3 аргумента: cookies, headers, data. Обязательно ли передавать значения в трёх разных словарях или можно прописать всё в один? Адекватно ли это и делают ли так? Безопасно ли передавать cookies в одном словаре с headers, не будет ли утечки куки? Хочу так сделать потому, что часть значений дублируется, а 3 словаря смотрятся очень громоздко. Легкий код для примера:

values = {
    'sessionid': 'XXXXXXXXXX',
    'LoginSecure': 'XXXXXXXXXX',
    'Referer': 'XXXXXXXXXX',
    'Content-Type': 'XXXXXXXXXX',
    'User-Agent': 'XXXXXXXXXX',
    'orderid': 'XXXXXXXXXX',
    'price_total': 'XX',
    'quantity': 'X'
}

response = requests.post(url, cookies=values, headers=values, data=values)

Ответы

▲ 0Принят

Обязательно передавать значения в трех разных словарях не требуется, можно прописать все значения и в одном словаре. Однако, это не совсем адекватный подход, так как словари для cookies, headers и data имеют разное назначение и функционал, их следует отдельно различать.

При передаче cookies вместе с headers нет утечки, так как headers используется для передачи информации о запросе, а cookies - для хранения данных о сеансе пользователя. Вообще лучше - вынести cookies в отдельный словарь для большей ясности и чтобы не смешивать информацию о сеансе пользователя с другими данными запроса.

Пример:

cookies = {
    'sessionid': 'zn',
    'LoginSecure': 'zn'
}

headers = {
    'Referer': 'zn',
    'Content-Type': 'zn',
    'User-Agent': 'zn'
}

data = {
    'orderid': 'zn',
    'price_total': 'zn',
    'quantity': 'zn'
}

response = requests.post(url, cookies=cookies, headers=headers, data=data)