@@ -1045,19 +1045,28 @@ def _randomizeParameter(paramString, randomParameter):
10451045 found = False
10461046 value = getUnicode (value )
10471047
1048- regex = r"\b(%s)\b([^\w]+)(\w+)" % re .escape (name )
1049- if kb .postHint and re .search (regex , (post or "" )):
1050- found = True
1051- post = re .sub (regex , "\g<1>\g<2>%s" % value , post )
1048+ if kb .postHint and re .search (r"\b%s\b" % re .escape (name ), post or "" ):
1049+ if kb .postHint in (POST_HINT .XML , POST_HINT .SOAP ):
1050+ if re .search (r"<%s\b" % re .escape (name ), post ):
1051+ found = True
1052+ post = re .sub (r"(?s)(<%s\b[^>]*>)(.*?)(</%s)" % (re .escape (name ), re .escape (name )), "\g<1>%s\g<3>" % value , post )
1053+ elif re .search (r"\b%s>" % re .escape (name ), post ):
1054+ found = True
1055+ post = re .sub (r"(?s)(\b%s>)(.*?)(</[^<]*\b%s>)" % (re .escape (name ), re .escape (name )), "\g<1>%s\g<3>" % value , post )
1056+
1057+ regex = r"\b(%s)\b([^\w]+)(\w+)" % re .escape (name )
1058+ if not found and re .search (regex , (post or "" )):
1059+ found = True
1060+ post = re .sub (regex , "\g<1>\g<2>%s" % value , post )
10521061
10531062 regex = r"((\A|%s)%s=).+?(%s|\Z)" % (re .escape (delimiter ), re .escape (name ), re .escape (delimiter ))
1054- if re .search (regex , (get or "" )):
1063+ if not found and re .search (regex , (post or "" )):
10551064 found = True
1056- get = re .sub (regex , "\g<1>%s\g<3>" % value , get )
1065+ post = re .sub (regex , "\g<1>%s\g<3>" % value , post )
10571066
1058- if re .search (regex , (post or "" )):
1067+ if re .search (regex , (get or "" )):
10591068 found = True
1060- post = re .sub (regex , "\g<1>%s\g<3>" % value , post )
1069+ get = re .sub (regex , "\g<1>%s\g<3>" % value , get )
10611070
10621071 if re .search (regex , (query or "" )):
10631072 found = True
0 commit comments