Heute Morgen hatte ich etwa 100 E-Mails in meinem Posteingang, in denen mir mitgeteilt wurde, dass verschiedene Seiten nicht vorhanden sind (ich vermute, dass ein Bot nach Sicherheitslücken sucht). Der Fehler lautet:
NoReverseMatch: Rückwärts für 'view_profile' mit Argumenten '('',)' und Schlüsselwortargumenten '{}' nicht gefunden.
Aber wenn ich die angegebene URL auf meinem Produktionsserver aufrufe, erhalte ich meine 404-Seite, genau wie erwartet, und es wird keine E-Mail gesendet. Warum/wie generieren diese Bots also (was ich vermute) einen internen Serverfehler? Und wie kann ich sie daran hindern?
Mein view_profile
URL-Muster ist wie folgt definiert:
url(r'^(?P\d+)$', name="view_profile")
Das ist ein Untermuster von
RegexURLResolver(r'^kontakte/', 'profiles.views.user_profile'),
Es ist genau wie alle meine anderen URL-Muster definiert und erfordert eine ID, die übergeben werden muss... also weiß ich nicht, wie es ohne Argumente aufgerufen wird.
Der vollständige Traceback:
Rückverfolgung (letzter Aufruf zuletzt):
Datei "/home/ich/meine/website/lib/python2.7/django/core/handlers/base.py", Zeile 150, in get_response
response = callback(request, **param_dict)
Datei "/home/ich/meine/website/lib/python2.7/django/utils/decorators.py", Zeile 93, in _wrapped_view
response = view_func(request, *args, **kwargs)
Datei "/home/ich/meine/website/lib/python2.7/django/views/defaults.py", Zeile 19, in page_not_found
return http.HttpResponseNotFound(t.render(RequestContext(request, {'request_path': request.path})))
Datei "/home/ich/meine/website/lib/python2.7/django/template/base.py", Zeile 123, in render
return self._render(context)
Datei "/home/ich/meine/website/lib/python2.7/django/template/base.py", Zeile 117, in _render
return self.nodelist.render(context)
Datei "/home/ich/meine/website/lib/python2.7/django/template/base.py", Zeile 744, in render
bits.append(self.render_node(node, context))
Datei "/home/ich/meine/website/lib/python2.7/django/template/base.py", Zeile 757, in render_node
return node.render(context)
Datei "/home/ich/meine/website/lib/python2.7/django/template/loader_tags.py", Zeile 127, in render
return compiled_parent._render(context)
Datei "/home/ich/meine/website/lib/python2.7/django/template/base.py", Zeile 117, in _render
return self.nodelist.render(context)
Datei "/home/ich/meine/website/lib/python2.7/django/template/base.py", Zeile 744, in render
bits.append(self.render_node(node, context))
Datei "/home/ich/meine/website/lib/python2.7/django/template/base.py", Zeile 757, in render_node
return node.render(context)
Datei "/home/ich/meine/website/lib/python2.7/django/template/defaulttags.py", Zeile 311, in render
return self.nodelist_true.render(context)
Datei "/home/ich/meine/website/lib/python2.7/django/template/base.py", Zeile 744, in render
bits.append(self.render_node(node, context))
Datei "/home/ich/meine/website/lib/python2.7/django/template/base.py", Zeile 757, in render_node
return node.render(context)
Datei "/home/ich/meine/website/lib/python2.7/django/template/defaulttags.py", Zeile 450, in render
raise e
NoReverseMatch: Rückwärts für 'view_profile' mit Argumenten '('',)' und Schlüsselwortargumenten '{}' nicht gefunden.
,
POST:,
COOKIES:{'csrftoken': '89867bc39db49a791bb24dce06e26b6f',
'sessionid': 'd0db456ae01005678d1538b00ae26dd1'},
META:{'CSRF_COOKIE': '89867bc39db49a791bb24dce06e26b6f',
'DOCUMENT_ROOT': '/usr/local/apache2/htdocs',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_ACCEPT': '*/*',
'HTTP_CONNECTION': 'close',
'HTTP_COOKIE': 'csrftoken=89867bc39db49a791bb24dce06e26b6f; sessionid=d0db456ae01005678d1538b00ae26dd1',
'HTTP_HOST': 'myproject.net',
'HTTP_USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6; Zango 10.3.75.0)',
'HTTP_X_FORWARDED_FOR': '39.47.147.220',
'HTTP_X_FORWARDED_HOST': 'myproject.net',
'HTTP_X_FORWARDED_SERVER': 'myproject.net',
'PATH_INFO': u'/web/',
'PATH_TRANSLATED': '/home/ich/meine/website/myproject.wsgi/web/',
'QUERY_STRING': '',
'REMOTE_ADDR': '127.0.0.1',
'REMOTE_PORT': '40577',
'REQUEST_METHOD': 'GET',
'REQUEST_URI': '/web/',
'SCRIPT_FILENAME': '/home/ich/meine/website/myproject.wsgi',
'SCRIPT_NAME': u'',
'SERVER_ADDR': '127.0.0.1',
'SERVER_ADMIN': '[no address given]',
'SERVER_NAME': 'myproject.net',
'SERVER_PORT': '80',
'SERVER_PROTOCOL': 'HTTP/1.0',
'SERVER_SIGNATURE': '',
'SERVER_SOFTWARE': 'Apache/2.2.17 (Unix) mod_wsgi/3.3 Python/2.7.1',
'mod_wsgi.application_group': 'my.server.com|',
'mod_wsgi.callable_object': 'application',
'mod_wsgi.handler_script': '',
'mod_wsgi.input_chunked': '0',
'mod_wsgi.listener_host': '',
'mod_wsgi.listener_port': '54084',
'mod_wsgi.process_group': '',
'mod_wsgi.request_handler': 'wsgi-script',
'mod_wsgi.script_reloading': '1',
'mod_wsgi.version': (3, 3),
'wsgi.errors': ,
'wsgi.file_wrapper': ,
'wsgi.input': ,
'wsgi.multiprocess': False,
'wsgi.multithread': True,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 1)}>
Zum Schutz der Unschuldigen umbenannte Pfade.