本文整理汇总了Python中w3af.core.data.dc.generic.kv_container.KeyValueContainer.get_file_vars方法的典型用法代码示例。如果您正苦于以下问题:Python KeyValueContainer.get_file_vars方法的具体用法?Python KeyValueContainer.get_file_vars怎么用?Python KeyValueContainer.get_file_vars使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类w3af.core.data.dc.generic.kv_container.KeyValueContainer
的用法示例。
在下文中一共展示了KeyValueContainer.get_file_vars方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: FuzzableRequest
# 需要导入模块: from w3af.core.data.dc.generic.kv_container import KeyValueContainer [as 别名]
# 或者: from w3af.core.data.dc.generic.kv_container.KeyValueContainer import get_file_vars [as 别名]
#.........这里部分代码省略.........
self._cookie = Cookie(cookie)
elif cookie is None:
self._cookie = Cookie()
else:
fmt = '[FuzzableRequest error] set_cookie received: "%s": "%s".'
error_str = fmt % (type(cookie), repr(cookie))
om.out.error(error_str)
raise BaseFrameworkException(error_str)
def get_url(self):
return self._url
def get_uri(self):
"""
:return: The URI to send in the HTTP request
"""
return self._uri
def set_data(self, post_data):
"""
Set the DataContainer which we'll use for post-data
"""
if not isinstance(post_data, DataContainer):
raise TypeError('The "post_data" parameter of a %s must be of '
'DataContainer type.' % type(self).__name__)
self._post_data = post_data
def get_data(self):
"""
The data is the string representation of the post data, in most
cases it will be used as the POSTDATA for requests.
"""
return str(self._post_data)
def get_raw_data(self):
return self._post_data
def get_method(self):
return self._method
def get_post_data_headers(self):
"""
:return: A Headers object with the headers required to send the
self._post_data to the wire. For example, if the data is
url-encoded:
a=3&b=2
This method returns:
Content-Length: 7
Content-Type: application/x-www-form-urlencoded
When someone queries this object for the headers using
get_headers(), we'll include these. Hopefully this means that
the required headers will make it to the wire.
"""
return Headers(init_val=self.get_raw_data().get_headers())
def get_headers(self):
"""
:return: The headers which can be changed by the user during fuzzing.
:see: get_all_headers
"""
return self._headers
def get_all_headers(self):
"""
:return: Calls get_default_headers to get the default framework headers,
get_post_data_headers to get the DataContainer headers, merges that info
with the user specified headers (which live in self._headers) and
returns a Headers instance which will be sent to the wire.
"""
wire_headers = Headers()
for k, v in chain(self._headers.items(),
self.get_post_data_headers().items()):
# Ignore any keys which are already defined in the user-specified
# headers
kvalue, kreal = wire_headers.iget(k, None)
if kvalue is not None:
continue
wire_headers[k] = v
return wire_headers
def get_referer(self):
return self.get_headers().get('Referer', None)
def get_cookie(self):
return self._cookie
def get_file_vars(self):
"""
:return: A list of postdata parameters that contain a file
"""
try:
return self._post_data.get_file_vars()
except AttributeError:
return []
示例2: FuzzableRequest
# 需要导入模块: from w3af.core.data.dc.generic.kv_container import KeyValueContainer [as 别名]
# 或者: from w3af.core.data.dc.generic.kv_container.KeyValueContainer import get_file_vars [as 别名]
#.........这里部分代码省略.........
def get_uri(self):
"""
:return: The URI to send in the HTTP request
"""
return self._uri
def set_data(self, post_data):
"""
Set the DataContainer which we'll use for post-data
"""
if not isinstance(post_data, DataContainer):
raise TypeError('The "post_data" parameter of a %s must be of '
'DataContainer type.' % type(self).__name__)
self._post_data = post_data
def get_data(self):
"""
The data is the string representation of the post data, in most
cases it will be used as the POSTDATA for requests.
"""
return str(self._post_data)
def get_raw_data(self):
return self._post_data
def get_method(self):
return self._method
def get_post_data_headers(self):
"""
:return: A Headers object with the headers required to send the
self._post_data to the wire. For example, if the data is
url-encoded:
a=3&b=2
This method returns:
Content-Length: 7
Content-Type: application/x-www-form-urlencoded
When someone queries this object for the headers using
get_headers(), we'll include these. Hopefully this means that
the required headers will make it to the wire.
"""
return Headers(init_val=self.get_raw_data().get_headers())
def get_headers(self):
"""
:return: The headers which can be changed by the user during fuzzing.
:see: get_all_headers
"""
return self._headers
def get_all_headers(self):
"""
:return: Calls get_default_headers to get the default framework headers,
get_post_data_headers to get the DataContainer headers, merges that info
with the user specified headers (which live in self._headers) and
returns a Headers instance which will be sent to the wire.
"""
wire_headers = Headers()
for k, v in chain(self._headers.items(),
self.get_post_data_headers().items()):
# Please note that here we're overwriting the headers from the
# fuzzable request with the headers from the data container,
# the overwriting is done in this order due to the order in the
# chain() items above
#
# I found a bug where I loaded a request from spider_man, saved
# it using dump() and then tried to load it again and failed because
# of this overwriting not being done (the multipart boundary was
# incorrect).
#
# Keep that in mind in case you want to change this overwriting!
#
# Overwrite the existing one, case insensitive style
_, stored_header_name = wire_headers.iget(k, None)
if stored_header_name is not None:
wire_headers[stored_header_name] = v
else:
wire_headers[k] = v
return wire_headers
def get_referer(self):
return self.get_headers().get('Referer', None)
def get_cookie(self):
return self._cookie
def get_file_vars(self):
"""
:return: A list of post-data parameters that contain a file
"""
try:
return self._post_data.get_file_vars()
except AttributeError:
return []