es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para desactivar el parámetro ?next= en Django Admin, puedes sobrescribir el método login() de la vista django.contrib.admin.views.login.

    Aquí tienes un ejemplo de código para lograr esto:

    from django.contrib.admin.views import LoginView
    
    class CustomLoginView(LoginView):
        def get_success_url(self):
            return self.get_redirect_url()
    
        def get_redirect_url(self):
            """
            Deshabilita el parámetro '?next=' devolviendo la página de índice de administración predeterminada.
            """
            return reverse_lazy('admin:index')
    

    Luego, debes establecer tu vista personalizada CustomLoginView como la configuración LOGIN_VIEW en el archivo settings.py de tu proyecto:

    LOGIN_VIEW = 'ruta.a.CustomLoginView'
    

    Esto sobrescribirá la vista LoginView predeterminada utilizada por Django Admin y deshabilitará el parámetro ?next=. En su lugar, el usuario será redirigido a la página de índice de administración después de iniciar sesión exitosamente.

    Al desactivar el parámetro ?next=, puedes prevenir ataques de enumeración de páginas, donde un atacante puede adivinar la siguiente página protegida basándose en la URL de la página actual.

Comments are closed.