Как можно выборочно замаскировать произвольные данные, отправляемые по небезопасной ссылке? - PullRequest
1 голос
/ 23 сентября 2010

Я использую сторонний пакет регистрации ошибок для моего веб-приложения на python.Когда я отправляю ошибку, я включаю содержимое (среди прочего) переменной POST и некоторые данные шаблона.Некоторые из этих данных не должны отправляться в службу регистрации ошибок (пароли, некоторые другие данные шаблона).

Как я могу получить полезную нагрузку, которая состоит из набора данных - объектов, dicts и др. -- и замаскировать (скажем) каждое поле или запись с именем my_private_data?

Что я ожидаю, так это то, что если у объекта есть строка или целочисленное свойство (личные данные всегда будут числом или строкой)) my_private_data=SOME SECRET, он будет передан как my_private_data=**********

Как мне это сделать?

1 Ответ

1 голос
/ 23 сентября 2010

Если у вас есть данные POST в виде строки, вы можете использовать стандартные модули «urlparse» и «urllib» для удаления определенных параметров:

import urlparse
import urllib

postDataAsDict = urlparse.parse_qs("a=5&b=3&c=%26escaped", strict_parsing = True)
print postDataAsDict # prints {'a': ['5'], 'b': ['3'], 'c': ['&escaped']}

del postDataAsDict["a"] # in your case "my_private_data"
print urllib.urlencode(postDataAsDict, True) # prints c=%26escaped&b=3

Обратите внимание, что parse_qs правильно поддерживает несколько параметров с одинаковыми именами, поэтому не беспокойтесь об этом.

...