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;
- L'attaquant peut changer d'IP pour chaque demande
- L'attaquant peut transmettre à l'URI le ou les paramètres dont le site cible ne se soucie pas.
- 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;
?>