1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
| <?php
// Démarrage de la session
$Resultatidentification='defaultvalue';
// Si on a dépassé le temps de blocage
if(isset($_SESSION['nombre'])
and $_SESSION['timestamp_limite'] < time())
{
// Destruction des variables de session
unset($_SESSION['nombre']);
unset($_SESSION['timestamp_limite']);
}
// Si le cookie n'existe pas
if(!isset($_COOKIE['marqueur']))
{
// Si le formulaire est correctement rempli
if(isset($_POST['connexion'])
and !empty($_POST['pseudo'])
and !empty($_POST['passe']))
{
// Si la variable de session qui compte le nombre de soumissions n'existe pas
if(!isset($_SESSION['nombre']))
{
// Initialisation de la variable
$_SESSION['nombre'] = 0;
// Blocage pendant 10 min
$_SESSION['timestamp_limite'] = time() + 60*10;
}
// Sécurisation des variables
$pseudo = mysql_real_escape_string($_POST['pseudo']); //==========PSEUDO
// On hache le passe récupéré à partir d'un formulaire
function hacher($passe)
{
// Nos grains de sel
define("PREFIXE", "zer0");
define("SUFFIXE", "forever");
// Faites tournez le Hachage
$passe = md5( sha1(PREFIXE) . $passe . sha1(SUFFIXE) );
return $passe;
}
$passe = hacher($_POST['passe']);//=============PASS
// Si on n'essaye pas de nous attaquer par force brute
if($_SESSION['nombre'] < 10)
{
connexion_DB('amispher_main');
// Envoie de la requête au serveur
$requete = mysql_query("SELECT id,pseudo,type
FROM administration
WHERE pseudo = '$pseudo'
AND passe = '$passe'")or die(mysql_error());
// Ici, vous traitez les résultats de votre requête à votre guise
$resultat = mysql_num_rows($requete);
$info_user=mysql_fetch_array($requete);
//======= On compare les deux empreintes =======
if ($resultat==1)
{
$Resultatidentification='Authentification réussie';
$css_img_resultat='img_resultat_op_succes';
$_SESSION['usertype']=$info_user['type'];
//echo $_SESSION['usertype'];
$delai=2; // le nombre de secondes
if ($_SESSION['usertype']== 'admin')
{
$url='http://localhost/newamisphere/admin.php';
}elseif ($_SESSION['usertype']== 'membre') {
$url='http://localhost/newamisphere/membres.php';
}
header("Refresh: $delai;url=$url");
}
else
{
$Resultatidentification="Le mot de passe ou le nom d'utilisateur est incorrecte";
$css_img_resultat='img_resultat_op_echec';
$delai=2; // le nombre de secondes
$url='http://localhost/newamisphere/';
header("Refresh: $delai;url=$url");
}
// Incrémentation de notre variable de session
$_SESSION['nombre']++;
//echo $_SESSION['nombre'];
}
// Si on a dépassé les 10 tentatives ==> ATTAQUE PAR FORCE BRUTE !!!
else
{
// Si le cookie marqueur n'existe pas on le crée
if(!isset($_COOKIE['marqueur']))
{
$timestamp_marque = time() + 60; // On le marque pendant une minute
$cookie_vie = time() + 60*60*24; // Durée de vie de 24 heures pour le décalage horaire
setcookie("marqueur", $timestamp_marque, $cookie_vie);
}
// on quitte le script
exit();
}
} else {
$Resultatidentification='Les deux champs "Username" et "Password" doivent être remplis';
$css_img_resultat='img_resultat_op_echec';
$delai=2; // le nombre de secondes
$url='http://localhost/newamisphere/';
header("Refresh: $delai;url=$url");
}
}
// Si le cookie existe
else
{
// Si le temps de blocage a été dépassé
if($_COOKIE['marqueur'] < time())
{
// Destruction du cookie
setcookie("marqueur", "", 0);
}
} |
Partager