Todo esto viene activado por defecto en cualquier tabla, sin configuración extra.
Esta demo usa SQLite en un archivo temporal para no necesitar una base de datos real. En tu proyecto, con MariaDB o MySQL, solo cambia cómo abres la conexión — el resto del código (TableConfig, AppyCrud, handle()) es exactamente igual.
$pdo = new PDO( 'mysql:host=localhost;port=3306;dbname=mi_bd;charset=utf8mb4', 'usuario', 'clave' ); $connection = Connection::fromPdo($pdo); // MariaDB usa el mismo driver PDO 'mysql' que MySQL — no hay driver 'mariadb' separado. // Con Laravel: Connection::fromPdo(DB::connection()->getPdo()); // Con CodeIgniter 4: Connection::fromPdo(\Config\Database::connect()->getConnection());
<script>alert(1)</script> y guarda — al volver a abrirlo, el script ya no existe..php o .exe — se guarda con nombre aleatorio y extensión .bin, nunca ejecutable.insertFields/editFields — y aunque lo agregues a mano al POST desde las herramientas de desarrollador, el servidor lo descarta.| Titulo | Correo ↑ | Notas (editor enriquecido) | Adjunto (prueba con un .php o .exe) | Acciones | |
|---|---|---|---|---|---|
| Reporte de ejemplo 1 | ana@ejemplo.com | Prueba a editar este campo y pegar <script>alert(1)</script> — al gu… | |||
| Reporte de ejemplo 2 | beto@ejemplo.com | Prueba tambien subir un archivo .php como adjunto: se guarda como .bin. |
Pagina 1 de 1