Exemple #1
0
 def test_post_as_string(self):
     data = {
         'http': {
             'data': six.b('password=evil&api_key=evil&harmless=bar'),
         }
     }
     proc = SanitizePasswordsProcessor(Mock())
     result = proc.process(data)
     self.assertTrue('http' in result)
     http = result['http']
     assert 'evil' not in force_text(http['data'])
Exemple #2
0
 def test_post_as_string(self):
     data = {
         'http': {
             'data': six.b('password=evil&api_key=evil&harmless=bar'),
         }
     }
     proc = SanitizePasswordsProcessor(Mock())
     result = proc.process(data)
     self.assertTrue('http' in result)
     http = result['http']
     assert 'evil' not in force_text(http['data'])
Exemple #3
0
    def filter_http(self, data):
        for n in ('data', 'cookies', 'headers', 'env', 'query_string'):
            if n not in data:
                continue

            if isinstance(data[n], (six.binary_type, ) + six.string_types):
                text_data = force_text(data[n], errors='replace')
                if '=' in text_data:
                    # at this point we've assumed it's a standard HTTP query
                    querybits = []
                    for bit in text_data.split('&'):
                        chunk = bit.split('=')
                        if len(chunk) == 2:
                            querybits.append((chunk[0], self.sanitize(*chunk)))
                        else:
                            querybits.append(chunk)

                    data[n] = '&'.join('='.join(k) for k in querybits)
                    continue
            data[n] = varmap(self.sanitize, data[n])
    def filter_http(self, data):
        for n in ('data', 'cookies', 'headers', 'env', 'query_string'):
            if n not in data:
                continue

            if isinstance(data[n], (six.binary_type,) + six.string_types):
                text_data = force_text(data[n], errors='replace')
                if '=' in text_data:
                    # at this point we've assumed it's a standard HTTP query
                    querybits = []
                    for bit in text_data.split('&'):
                        chunk = bit.split('=')
                        if len(chunk) == 2:
                            querybits.append((chunk[0], self.sanitize(*chunk)))
                        else:
                            querybits.append(chunk)

                    data[n] = '&'.join('='.join(k) for k in querybits)
                    continue
            data[n] = varmap(self.sanitize, data[n])
Exemple #5
0
 def _decode(self, param):
     try:
         return force_text(param, strings_only=True)
     except UnicodeDecodeError:
         return '(encoded string)'
Exemple #6
0
 def _decode(self, param):
     try:
         return force_text(param, strings_only=True)
     except UnicodeDecodeError:
         return '(encoded string)'