- Mise à jour VERSION vers 3.3.4 - Optimisations et révisions architecture API (deploy-api.sh, scripts de migration) - Ajout documentation Stripe Tap to Pay complète - Migration vers polices Inter Variable pour Flutter - Optimisations build Android et nettoyage fichiers temporaires - Amélioration système de déploiement avec gestion backups - Ajout scripts CRON et migrations base de données 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
95 lines
3.1 KiB
PHP
Executable File
95 lines
3.1 KiB
PHP
Executable File
#!/usr/bin/env php
|
|
<?php
|
|
/**
|
|
* Script de test pour la whitelist dynamique
|
|
* Usage: php scripts/test_whitelist.php [refresh]
|
|
*/
|
|
|
|
require_once __DIR__ . '/../src/Services/Security/IPBlocker.php';
|
|
|
|
use App\Services\Security\IPBlocker;
|
|
|
|
echo "=== Test de la whitelist dynamique depuis IN3 ===\n\n";
|
|
|
|
// Si l'argument "refresh" est passé, forcer le rafraîchissement
|
|
if (isset($argv[1]) && $argv[1] === 'refresh') {
|
|
echo "Forçage du rafraîchissement de la whitelist...\n";
|
|
$ips = IPBlocker::refreshDynamicWhitelist();
|
|
echo "✓ Whitelist rafraîchie\n\n";
|
|
}
|
|
|
|
// Test 1: Récupérer les IPs whitelistées
|
|
echo "1. IPs whitelistées statiques:\n";
|
|
$staticWhitelist = IPBlocker::WHITELIST;
|
|
foreach ($staticWhitelist as $ip) {
|
|
echo " - $ip\n";
|
|
}
|
|
|
|
echo "\n2. Récupération de la whitelist dynamique depuis IN3...\n";
|
|
try {
|
|
// Forcer le rafraîchissement pour le test
|
|
$dynamicIps = IPBlocker::refreshDynamicWhitelist();
|
|
|
|
if (empty($dynamicIps)) {
|
|
echo " ⚠ Aucune IP dynamique récupérée\n";
|
|
echo " Vérifiez:\n";
|
|
echo " - La connexion SSH vers IN3 (195.154.80.116)\n";
|
|
echo " - L'existence du fichier /var/bat/IP sur IN3\n";
|
|
echo " - Les clés SSH sont configurées pour root@IN3\n";
|
|
} else {
|
|
echo " ✓ IPs dynamiques récupérées:\n";
|
|
foreach ($dynamicIps as $ip) {
|
|
echo " - $ip\n";
|
|
}
|
|
}
|
|
} catch (Exception $e) {
|
|
echo " ✗ Erreur: " . $e->getMessage() . "\n";
|
|
}
|
|
|
|
// Test 2: Vérifier le fichier de cache
|
|
echo "\n3. Vérification du cache local:\n";
|
|
$cacheFile = __DIR__ . '/../config/whitelist_ip_cache.txt';
|
|
if (file_exists($cacheFile)) {
|
|
$cacheData = json_decode(file_get_contents($cacheFile), true);
|
|
if ($cacheData) {
|
|
echo " ✓ Cache trouvé:\n";
|
|
echo " - IP: " . ($cacheData['ip'] ?? 'N/A') . "\n";
|
|
echo " - Récupéré le: " . ($cacheData['retrieved_at'] ?? 'N/A') . "\n";
|
|
echo " - Timestamp: " . ($cacheData['timestamp'] ?? 'N/A') . "\n";
|
|
|
|
$age = time() - ($cacheData['timestamp'] ?? 0);
|
|
$ageMinutes = round($age / 60);
|
|
echo " - Âge du cache: $ageMinutes minutes\n";
|
|
|
|
if ($age > 3600) {
|
|
echo " ⚠ Le cache a plus d'1 heure et sera rafraîchi au prochain appel\n";
|
|
}
|
|
} else {
|
|
echo " ⚠ Cache invalide\n";
|
|
}
|
|
} else {
|
|
echo " - Pas de cache local trouvé\n";
|
|
}
|
|
|
|
// Test 3: Tester quelques IPs
|
|
echo "\n4. Test de blocage pour quelques IPs:\n";
|
|
$testIps = [
|
|
'127.0.0.1' => 'Localhost (whitelist statique)',
|
|
'8.8.8.8' => 'Google DNS (non whitelisté)',
|
|
];
|
|
|
|
// Ajouter l'IP dynamique si elle existe
|
|
if (!empty($dynamicIps) && isset($dynamicIps[0])) {
|
|
$testIps[$dynamicIps[0]] = 'IP depuis IN3 (whitelist dynamique)';
|
|
}
|
|
|
|
foreach ($testIps as $ip => $description) {
|
|
$isWhitelisted = IPBlocker::isWhitelisted($ip);
|
|
$isBlocked = IPBlocker::isBlocked($ip);
|
|
|
|
echo " - $ip ($description):\n";
|
|
echo " Whitelisté: " . ($isWhitelisted ? '✓ Oui' : '✗ Non') . "\n";
|
|
echo " Bloqué: " . ($isBlocked ? '✗ Oui' : '✓ Non') . "\n";
|
|
}
|
|
|
|
echo "\n=== Fin du test ===\n"; |