diff --git a/lib/core/common.py b/lib/core/common.py index 9f0fcb9c1..5f7f6a9d1 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -1892,3 +1892,15 @@ def filterListValue(value, regex): return retVal else: return value + +def unicodeToSafeHTMLValue(value): + """ + Returns HTML representation of unicode + string value safe for sending over HTTP(s) + """ + retVal = value + if value: + for char in value: + if ord(char) > 127: + retVal = retVal.replace(char, "&#%d;" % ord(char)) + return retVal diff --git a/lib/request/connect.py b/lib/request/connect.py index fb25e525a..fe1fbfb92 100644 --- a/lib/request/connect.py +++ b/lib/request/connect.py @@ -22,6 +22,7 @@ from lib.core.common import calculateDeltaSeconds from lib.core.common import clearConsoleLine from lib.core.common import getCurrentThreadData from lib.core.common import getFilteredPageContent +from lib.core.common import unicodeToSafeHTMLValue from lib.core.common import getUnicode from lib.core.common import logHTTPTraffic from lib.core.common import readInput @@ -150,6 +151,11 @@ class Connect: for key, item in auxHeaders.items(): headers[key] = item + for key, item in headers.items(): + headers[key] = unicodeToSafeHTMLValue(item) + + post = unicodeToSafeHTMLValue(post) + if method: req = MethodRequest(url, post, headers) req.set_method(method)