{% extends 'layouts/authenticated.html.twig' %} {% block page_title %}{{ page_title }}{% endblock %} {% block content %}
{# Header #}

{{ page_title }}

{{ suspicious_tokens|length }} token(s) suspect(s) détecté(s)

{# Alert Info #}

À propos des tokens suspects

Les tokens suspects sont des tokens JWT qui ont été réutilisés après leur expiration. Cela peut indiquer:

  • Une tentative d'attaque par rejeu de token
  • Un token volé ou compromis
  • Un problème de synchronisation d'horloge sur le client
{# Suspicious Tokens List #} {% if suspicious_tokens is empty %}

Aucun token suspect détecté

Tous les tokens sont sains. Continuez à surveiller régulièrement.

Retour au Dashboard
{% else %}
{% for token in suspicious_tokens %} {% endfor %}
Sévérité Token Utilisateur Device Tentatives Dernière tentative Statut Actions
{% set severity = token.expiredReuseAttempts >= 5 ? 'critical' : (token.expiredReuseAttempts >= 3 ? 'high' : 'medium') %} {% if severity == 'critical' %} CRITIQUE {% elseif severity == 'high' %} ÉLEVÉE {% else %} MOYENNE {% endif %}
{{ token.jti|slice(0, 16) }}...
ID: #{{ token.id }}
{{ token.user.email }}
{{ token.user.firstName }} {{ token.user.lastName }}
{{ token.browser|default('Unknown') }}
{{ token.os|default('Unknown') }}
{% if token.ipAddress %}
{{ token.ipAddress }}
{% endif %}
{{ token.expiredReuseAttempts }} {% if token.lastExpiredReuseAt %}
{{ token.lastExpiredReuseAt|date('d/m/Y') }}
{{ token.lastExpiredReuseAt|date('H:i:s') }}
{% else %}
-
{% endif %}
{% if token.isRevoked %} Révoqué {% elseif token.isExpired %} Expiré {% else %} Actif {% endif %}
{% if not token.isRevoked %} {% endif %}
{# Actions Card #}

Actions Recommandées

Que faire avec ces tokens suspects ?

  1. Enquêter: Examinez les détails de chaque token pour comprendre le contexte
  2. Vérifier l'utilisateur: Contactez l'utilisateur concerné si nécessaire
  3. Révoquer si nécessaire: Révoquezimmédiatement les tokens compromis
  4. Surveiller: Continuez à surveiller l'activité de l'utilisateur
  5. Documenter: Prenez note de l'incident pour référence future
{% endif %}
{# Hidden form for revocation #} {# Scripts #} {% endblock %}