Dies ist eine Geschichte über die Verwendung von django-request in DRF.
--Historie des Inhalts des Anforderungshauptteils, z. B. POST-Parameter ――Da es auch einen Sicherheitsaspekt gibt, ist das Speichern von POST-Parametern riskant, nicht wahr?
1 Mit Pip usw. installieren.
pip install django-request
2 Fügen Sie request
zu INSTALLED_APPS
hinzu
3 Fügen Sie request.middleware.RequestMiddleware
zu MIDDLEWARE
hinzu
4 Ausführung der Migration
manage.py migrate
Die API-Anforderung wird jetzt in der Tabelle "request_request" gespeichert.
Sogar die Anfrage von django-admin wird gespeichert, daher denke ich, dass es besser ist, sie auszuschließen Ich habe es so gemacht (Gesundheit ist ein Pass für Gesundheitscheck)
REQUEST_IGNORE_PATHS = (
r'^admin/', r'^docs/', r'^health$', r'\.ico$', r'^static/'
)
Da die IP-Adresse "REMOTE_ADDR" verwendet, kann sie bei einem Load Balancer nicht korrekt abgerufen werden. Ich habe es mit einem bittersüßen Maß so gemacht (Bitte sag mir, ob es einen besseren Weg gibt)
from request.middleware import RequestMiddleware
class XRequestMiddleware(RequestMiddleware):
def process_response(self, request, response):
# django-FERNBEDIENUNG auf Anfrage_Ich habe ADDR als IP gespeichert und bin daher zu HTTP gezwungen_X_FORWARDED_Wechseln Sie zu FOR
http_x_forwarded_for_ip = request.META.get('HTTP_X_FORWARDED_FOR')
remote_addr_ip = request.META.get('REMOTE_ADDR')
if http_x_forwarded_for_ip:
request.META['REMOTE_ADDR'] = http_x_forwarded_for_ip
response = super().process_response(request, response)
if http_x_forwarded_for_ip:
request.META['REMOTE_ADDR'] = remote_addr_ip
return response
Übrigens können in "HTTP_X_FORWARDED_FOR" IP-Adressen durch Kommas getrennt eingegeben werden. Wenn Sie also "REQUEST_IGNORE_IP" verwenden, sollten Sie wie folgt vorgehen.
http_x_forwarded_for_ip = request.META.get('HTTP_X_FORWARDED_FOR').split(',')[0]
Es ist einfach zu integrieren und für datengesteuerte Geräte unerlässlich. Ein weiteres Problem ist das Sichern, wenn Daten gesammelt werden. Ich möchte jedoch, dass Sie die IP-Adresse aktualisieren ...
Recommended Posts