Configuración inicial

Como primera etapa del apartado de programación se configura un logger para los resultados de cada intento de intrusión.

Configuracion para el logger en Laravel

El archivo donde se configura dicho logger esta ubicado en config/loggin.php

Linea de configuración

'honeypot' => [
	'driver' => 'single',
	'path' => storage_path('logs/honeypot.json'),
	'level' => 'info',
	
	'tap' => [App\Logging\CustomizeFormatter::class], // <- opcional (para JSON bonito)
],

Análisis

Como se observa se define una clase para obtener un json, la clase CustomizeFormatter contiene la configuración inicial del guardado json el cual sera utilizado como log para el stack ELK

Archivo CustomizeFormatter.php

<?php
 
namespace App\Logging;
use Monolog\Formatter\JsonFormatter;
 
class CustomizeFormatter
{
	/**
	* Customize the given logger instance.
	*
	* @param \Monolog\Logger $logger
	* @return void
	*/
	public function __invoke($logger)
	{
		foreach ($logger->getHandlers() as $handler) {
			$handler->setFormatter(new JsonFormatter());
		}
		
	}
}

Controladores de Laravel

Los controladores son metodos de ejecución que permiten relacionar procesos de la vista con acciones especificas de php, iniciar sesion o mostrar un producto por su ID, el proceso de comunicación es representado por el siguiente diagrama:

graph LR
  Cliente["Cliente / Navegador"]
  Controlador["Controlador"]
  Modelo["Modelo (Eloquent)"]
  Vista["Vista (Blade)"]
  DB[(Base de datos)]

  Cliente --> Controlador
  Controlador --> Modelo
  Modelo --> DB
  Controlador --> Vista
  Vista --> Cliente
  DB --> Modelo
  Modelo --> Controlador

Diagrama de Krypton612 - Ronald Diaz