Foire aux questions

Si vous avez trouvé un bug, veuillez le signaler dans le rapport de problème.

Questions fréquentes

Puis-je limiter le nombre de sessions uniquement pour une page spécifique ?

Oui, vous pouvez limiter le nombre de sessions uniquement pour une page spécifique. Cependant, vous devez d'abord désactiver l'option "Limite de sessions en ligne" dans le panneau de pare-feu, car sa portée est globale et ne peut pas être utilisée dans le même groupe de données.

Après avoir désactivé la "Limite de sessions en ligne", vous pouvez utiliser l'API publique de Shieldon. Par exemple, voici le code correspondant :

if (strpos($_SERVER['REQUEST_URI'], 'faq/online-session-limit.html') !== false) {
    $firewall->getKernel()->limitSession(5, 300);
}

Cette page limite le nombre maximum d'utilisateurs à 5, chaque utilisateur étant autorisé à afficher la page pendant 300 secondes.

Lorsqu'un utilisateur accède à cette page et que le nombre d'utilisateurs atteint la limite, une boîte de dialogue similaire à la capture d'écran suivante sera affichée :

Comment bloquer toutes les adresses IP pour une URL spécifique ?

Je n'ai pas inclus la fonctionnalité "Bloquer tout" dans le panneau de pare-feu pour éviter que certaines personnes ne bloquent toutes les adresses IP associées à l'URL /. Cela bloquerait toutes les URL, y compris l'accès au panneau de pare-feu. À la place, je vous suggère d'utiliser le gestionnaire d'adresses IP et de configurer une plage d'adresses IP spécifique selon vos besoins.

Si vous souhaitez bloquer toutes les adresses IP pour une URL spécifique, le code suivant vous aidera :

// Placez ce code avant $firewall->run();
if (strpos($_SERVER['REQUEST_URI'], 'example/block-all.html') !== false) {
    $firewall->getKernel()->getComponent('Ip')->denyAll();
}

Ceci est une page exemple qui bloque toutes les adresses IP qui tentent d'y accéder.

Lorsqu'un utilisateur est bloqué, il se trouvera face à une boîte de dialogue similaire à la capture d'écran suivante.

Avertissement : Si vous cliquez sur ce lien exemple, vous serez bloqué et ne pourrez pas accéder à ce site web. Vous devrez attendre 60 minutes avant que le blocage soit levé.

Quel est le nom d'utilisateur et le mot de passe par défaut pour le panneau de pare-feu ?

Le nom d'utilisateur par défaut est shieldon_user et le mot de passe est shieldon_pass. Après vous être connecté au panneau de pare-feu, la première chose à faire est de changer le nom d'utilisateur et le mot de passe.

Le pare-feu Shieldon peut-il réellement atténuer les attaques DDoS ?

Pour les attaques DDoS de petite envergure de type HTTP, ma réponse est OUI, mais le scénario réel peut dépendre de nombreux facteurs tels que la bande passante, la qualité du matériel, les réglages du système, la qualité du code, etc.

Prenons un exemple simple. Supposons que votre site web ait une taille moyenne de page de 3 Mo et que votre serveur ait une bande passante de 100 Mbps. Votre serveur peut gérer un débit de données d'environ 12,5 Mo/s. Si quelqu'un décide d'attaquer votre site web de manière malveillante, combien de sources d'attaque pensez-vous qu'il faudrait pour submerger votre serveur ? Cela ne prend même pas en compte la charge potentielle sur vos connexions MySQL.

Le pare-feu Shieldon interrompt ces connexions malveillantes, renvoyant une page CAPTCHA d'une taille inférieure à 50 Ko. Il arrête l'exécution ultérieure des scripts PHP, empêchant les connexions MySQL supplémentaires. De cette manière, le pare-feu Shieldon peut économiser de la mémoire et de l'utilisation du CPU lorsque votre site web est attaqué. Cependant, il s'agit simplement d'une stratégie d'atténuation pour les attaques DDoS de type HTTP, ce n'est pas une solution définitive.