MCPcopy Create free account
hub / github.com/sqlmapproject/sqlmap / _connReadProxy

Method _connReadProxy

lib/request/connect.py:229–268  ·  view source on GitHub ↗
(conn)

Source from the content-addressed store, hash-verified

227
228 @staticmethod
229 def _connReadProxy(conn):
230 retVal = b""
231
232 if not kb.dnsMode and conn:
233 headers = conn.info()
234 if kb.pageCompress and headers and hasattr(headers, "getheader") and (headers.getheader(HTTP_HEADER.CONTENT_ENCODING, "").lower() in ("gzip", "deflate") or "text" not in headers.getheader(HTTP_HEADER.CONTENT_TYPE, "").lower()):
235 retVal = conn.read(MAX_CONNECTION_TOTAL_SIZE)
236 if len(retVal) == MAX_CONNECTION_TOTAL_SIZE:
237 warnMsg = "large compressed response detected. Disabling compression"
238 singleTimeWarnMessage(warnMsg)
239 kb.pageCompress = False
240 raise SqlmapCompressionException
241 else:
242 while True:
243 if not conn:
244 break
245 else:
246 try:
247 part = conn.read(MAX_CONNECTION_READ_SIZE)
248 except AssertionError:
249 part = b""
250
251 if len(part) == MAX_CONNECTION_READ_SIZE:
252 warnMsg = "large response detected. This could take a while"
253 singleTimeWarnMessage(warnMsg)
254 part = re.sub(getBytes(r"(?si)%s.+?%s" % (kb.chars.stop, kb.chars.start)), getBytes("%s%s%s" % (kb.chars.stop, LARGE_READ_TRIM_MARKER, kb.chars.start)), part)
255 retVal += part
256 else:
257 retVal += part
258 break
259
260 if len(retVal) > MAX_CONNECTION_TOTAL_SIZE:
261 warnMsg = "too large response detected. Automatically trimming it"
262 singleTimeWarnMessage(warnMsg)
263 break
264
265 if conf.yuge:
266 retVal = YUGE_FACTOR * retVal
267
268 return retVal
269
270 @staticmethod
271 def getPage(**kwargs):

Callers 1

getPageMethod · 0.80

Calls 4

singleTimeWarnMessageFunction · 0.90
getBytesFunction · 0.90
infoMethod · 0.80
readMethod · 0.45

Tested by

no test coverage detected