Code pin_failed_admin.php

Depuis votre terminal, connectez-vous a votre Raspberry PI et rentrez la commande suivante pour créer le fichier Code pin_failed_admin.php.

sudo nano /var/www/html/Code pin_failed_admin.php


Copier le code suivant et coller le dans le fichier qui vient de s'ouvrir.

<?php
session_start();
header('Content-Type: application/json');

const MAX_ATTEMPTS = 3;
const BLACKLIST_FILE = '/var/www/html/data/ip_blacklist.json';

// Logique d'incrémentation et de vérification
if (!isset($_SESSION['pin_attempts_admin'])) {
    $_SESSION['pin_attempts_admin'] = 0;
}

$_SESSION['pin_attempts_admin']++;

$attempts_left = MAX_ATTEMPTS - $_SESSION['pin_attempts_admin'];

if ($attempts_left <= 0) {
    // Bloquer l'IP
    $client_ip = $_SERVER['REMOTE_ADDR'];
    $blacklist = json_decode(file_get_contents(BLACKLIST_FILE), true) ?: [];
    $blacklist[$client_ip] = ['blocked_time' => date('Y-m-d H:i:s'), 'reason' => 'Tentatives de PIN dépassées (ADMIN)'];
    file_put_contents(BLACKLIST_FILE, json_encode($blacklist, JSON_PRETTY_PRINT));
    
    session_destroy();
    echo json_encode(['status' => 'blocked']);
} else {
    echo json_encode(['status' => 'failed', 'attempts_left' => $attempts_left]);
}
?>