minor refactoring

This commit is contained in:
Miroslav Stampar 2011-04-10 07:16:19 +00:00
parent c714ac6421
commit 723a7447b2
3 changed files with 21 additions and 20 deletions

View File

@ -2510,21 +2510,3 @@ def isBinaryData(value):
if isinstance(value, basestring): if isinstance(value, basestring):
retVal = reduce(lambda x, y: x or not (y in string.printable or ord(y) > 255), value, False) retVal = reduce(lambda x, y: x or not (y in string.printable or ord(y) > 255), value, False)
return retVal return retVal
def getSafeHexEncodedBinaryData(value):
"""
Returns safe representation of given basestring value
>>> getSafeEncodedBinaryData(u'test123')
u'test123'
>>> getSafeEncodedBinaryData(u'test\01\02\03')
u'test\\1\\2\\3'
"""
retVal = value
if isinstance(value, basestring):
retVal = reduce(lambda x, y: x + (y if (y in string.printable or ord(y) > 255) else '\%x' % ord(y)), value, unicode())
elif isinstance(value, list):
for i in xrange(len(value)):
retVal[i] = getSafeHexEncodedBinaryData(value[i])
return retVal

View File

@ -15,6 +15,7 @@ except:
import pickle import pickle
import sys import sys
import string
import struct import struct
import urllib import urllib
@ -126,3 +127,21 @@ def htmlescape(value):
def htmlunescape(value): def htmlunescape(value):
return value.replace('&amp;', '&').replace('&lt;', '<').replace('&gt;', '>').replace('&quot;', '"').replace('&#39;', "'").replace('&nbsp;', ' ') return value.replace('&amp;', '&').replace('&lt;', '<').replace('&gt;', '>').replace('&quot;', '"').replace('&#39;', "'").replace('&nbsp;', ' ')
def safehexencode(value):
"""
Returns safe hex representation of a given basestring value
>>> safehexencode(u'test123')
u'test123'
>>> safehexencode(u'test\x01\x02\xff')
u'test\\01\\02\\03\\ff'
"""
retVal = value
if isinstance(value, basestring):
retVal = reduce(lambda x, y: x + (y if (y in string.printable or ord(y) > 255) else '\%02x' % ord(y)), value, unicode())
elif isinstance(value, list):
for i in xrange(len(value)):
retVal[i] = safehexencode(value[i])
return retVal

View File

@ -17,7 +17,6 @@ from lib.core.common import cleanQuery
from lib.core.common import dataToSessionFile from lib.core.common import dataToSessionFile
from lib.core.common import expandAsteriskForColumns from lib.core.common import expandAsteriskForColumns
from lib.core.common import getPublicTypeMembers from lib.core.common import getPublicTypeMembers
from lib.core.common import getSafeHexEncodedBinaryData
from lib.core.common import initTechnique from lib.core.common import initTechnique
from lib.core.common import isNumPosStrValue from lib.core.common import isNumPosStrValue
from lib.core.common import isTechniqueAvailable from lib.core.common import isTechniqueAvailable
@ -28,6 +27,7 @@ from lib.core.common import randomInt
from lib.core.common import readInput from lib.core.common import readInput
from lib.core.common import replaceNewlineTabs from lib.core.common import replaceNewlineTabs
from lib.core.common import safeStringFormat from lib.core.common import safeStringFormat
from lib.core.convert import safehexencode
from lib.core.data import conf from lib.core.data import conf
from lib.core.data import kb from lib.core.data import kb
from lib.core.data import logger from lib.core.data import logger
@ -495,7 +495,7 @@ def getValue(expression, blind=True, inband=True, error=True, time=True, fromUse
value = None value = None
if safeHexEncode: if safeHexEncode:
value = getSafeHexEncodedBinaryData(value) value = safehexencode(value)
return value return value