fix purposes

This commit is contained in:
2026-07-12 16:50:35 +02:00
parent 7207e8afb7
commit 34ef199fb6
7 changed files with 126 additions and 7 deletions
+23 -2
View File
@@ -1,6 +1,28 @@
<?php
// On se déplace dans le dossier
// webhook.php
// Déclenché par un webhook GitHub (push sur main) pour resynchroniser le serveur.
chdir(__DIR__);
require_once __DIR__ . '/config/database.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
exit('Method not allowed');
}
$database = new Database();
$secret = $database->webhook_secret;
$payload = file_get_contents('php://input');
$signatureHeader = $_SERVER['HTTP_X_HUB_SIGNATURE_256'] ?? '';
$expectedSignature = 'sha256=' . hash_hmac('sha256', $payload, $secret);
// Comparaison en temps constant pour éviter les attaques par timing
if (!$signatureHeader || !hash_equals($expectedSignature, $signatureHeader)) {
http_response_code(403);
file_put_contents('webhook.log', date('Y-m-d H:i:s') . " - Tentative refusée (signature invalide)\n", FILE_APPEND);
exit('Forbidden');
}
// On récupère les modifs et on force l'écrasement pour éviter les conflits
$output = shell_exec('git fetch origin && git reset --hard origin/main 2>&1');
@@ -9,4 +31,3 @@ $output = shell_exec('git fetch origin && git reset --hard origin/main 2>&1');
file_put_contents('webhook.log', date('Y-m-d H:i:s') . "\n" . $output . "\n---\n", FILE_APPEND);
echo "Sync done.";
?>