88 votes

Comment activer la protection DDoS?

Les attaques par déni de service distribué (DDoS) sont généralement bloquées au niveau du serveur, n'est-ce pas?

Existe-t-il un moyen de le bloquer au niveau PHP ou au moins de le réduire?

Sinon, quel est le moyen le plus rapide et le plus courant d’arrêter les attaques DDoS?

20voto

Qeremy Points 3719

Selon la partie PHP de la question;

Bien que je ne me fie pas à PHP pour cela, il pourrait être implémenté, mais il faut envisager toutes ces possibilités ou plus;

  1. L'attaquant peut changer d'IP pour chaque demande
  2. L'attaquant peut transmettre à l'URI le ou les paramètres dont le site cible ne se soucie pas.
  3. L'attaquant peut redémarrer la session avant l'expiration ...

Pseudo simple;

 <?php
// Assuming session is already started
$uri = md5($_SERVER['REQUEST_URI']);
$exp = 3; // 3 seconds
$hash = $uri .'|'. time();
if (!isset($_SESSION['ddos'])) {
    $_SESSION['ddos'] = $hash;
}

list($_uri, $_exp) = explode('|', $_SESSION['ddos']);
if ($_uri == $uri && time() - $_exp < $exp) {
    header('HTTP/1.1 503 Service Unavailable');
    // die('Easy!');
    die;
}

// Save last request
$_SESSION['ddos'] = $hash;
?>
 

8voto

j_mcnally Points 4023

Le php est trop tard dans la demande de la chaîne.

Mettre votre serveur apache derrière un open source appareil peut être une bonne option pour vous.

http://tengine.taobao.org/ a la documentation et le code source des modules visant à DDOS de prévention. C'est une extension de nginx, de sorte que vous pouvez facilement l'ajouter comme un reverse proxy pour votre apache instance.

Voir: http://blog.zhuzhaoyuan.com/2012/01/a-mechanism-to-help-write-web-application-firewalls-for-nginx/ pour comment lutter contre la collision a des attaques DoS.

Totalement oublié trop, http://www.cloudflare.com est l'un des meilleurs pare-feu applicatif web, ils ont gratuits et payants plans et permettra de sauver votre cul de DDOS nous l'utilisons pour beaucoup de nos sites de la circulation, juste pour ses capacités de mise en cache. Elle est géniale!

5voto

ndlinh Points 811

Vous ne pouvez pas faire cela au niveau PHP. DDOS est une sorte d’attaque qui envoie trop de requêtes à votre serveur Web. Votre serveur Web rejettera la demande avant d'appeler votre script PHP.

Si vous utilisez Apache, voici quelques conseils d’Apache: http://httpd.apache.org/docs/trunk/misc/security_tips.html

4voto

ryan Points 39

Les DDoS sont mieux gérés par des appareils réseau très coûteux et spécialement conçus. Les hôtes ne sont généralement pas doués pour la protection contre les attaques DDoS car ils sont soumis à des performances relativement faibles, à l'épuisement de l'état, à une bande passante limitée, etc. L'utilisation d'iptables, d'apache mods et de services similaires peut vous aider dans certaines situations si vous n'avez pas accès au matériel d'atténuation des attaques DDoS. ou un service d'atténuation des attaques DDoS, mais il est loin d'être idéal et vous expose toujours au risque d'une attaque.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X