'Now we analyze the cookie and try to guess the remote web server or
programming framework based on the cookie that was sent.
:return: True if the cookie was fingerprinted'

def _match_cookie_fingerprint(self, request, response, cookie_obj):

    cookie_keys = cookie_obj.keys()
    for cookie_key in cookie_keys:
        if (cookie_key in self._cookie_key_failed_fingerprint):
            cookie_keys.remove(cookie_key)
            continue
        if (cookie_key in self._already_reported_fingerprint):
            cookie_keys.remove(cookie_key)
    for cookie_key in cookie_keys:
        for (cookie_str_db, system_name) in COOKIE_FINGERPRINT:
            if (cookie_str_db not in cookie_key):
                continue
            if (cookie_key in self._already_reported_fingerprint):
                continue
            self._already_reported_fingerprint.add(cookie_key)
            desc = 'A    cookie    matching    the    cookie    fingerprint    DB    has    been    found    when    requesting    "%s".    The    remote    platform    is:    "%s".'
            desc = (desc % (response.get_url(), system_name))
            i = CookieInfo('Identified    cookie', desc, response.id, self.get_name())
            i.set_cookie_object(cookie_obj)
            i.set_url(response.get_url())
            i['httpd'] = system_name
            kb.kb.append(self, 'fingerprint', i)
            return True
    else:
        for cookie_key in cookie_keys:
            self._cookie_key_failed_fingerprint.add(cookie_key)
    return False
