logSecurityAlert('directory_traversal', $request);
// Fausse réponse pour faire croire que le serveur est vulnérable
return response(
"
Index of /documents/private
",
200
)->header('Content-Type', 'text/html');
}
public function logMassAssignment(Request $request)
{
$this->logSecurityAlert('mass_assignment', $request);
// Faire croire que l'opération a réussi mais renvoyer une erreur 403 discrètement
return response()->json([
'status' => 'success',
'message' => 'Profil mis à jour.',
'debug' => 'Attempt logged.'
], 403);
}
public function downloadFakeFile(Request $request, $filename)
{
$this->logSecurityAlert('file_exfiltration', $request, ['filename' => $filename]);
// Faux contenu
$content = "Ceci est un honeypot de sécurité. Votre action a été journalisée.";
return response($content, 200)
->header('Content-Type', 'text/plain')
->header('Content-Disposition', 'attachment; filename="' . $filename . '"');
}
private function logSecurityAlert(string $type, Request $request, array $extraPayload = [])
{
\App\Models\SecurityAlert::create([
'user_id' => auth()->id(),
'type' => $type,
'endpoint' => $request->path(),
'payload' => array_merge($request->all(), $extraPayload),
'ip_address' => $request->ip(),
'user_agent' => $request->userAgent(),
]);
}
}