Escapar de manera segura una cadena antes de EVAL()
Lo que quiero hacer es lo siguiente:
Habrá un archivo de configuración externo que contiene:
RunCommand = "SomePHPCommand($SomeVariable)"
Pero el archivo de configuración:
$SomeVariable = GetFromWebCall(); //Obtenido externamente, debe ser seguro
$PHPCommand = LoadFromConfig(RunCommand) //Obtenido externamente pero en un entorno controlado y seguro, no es necesario limpiar
result = eval($PHPCommand)
En resumen, el archivo de configuración es SEGURO. Pero $SomeVariable podría contener algo malicioso y necesito planificar eso.
¿Cómo puedo escapar de manera segura el $SomeVariable antes de ejecutar mi comando eval?
davy.ai
Para escapar de forma segura la variable $SomeVariable antes de ejecutar el comando eval, debes utilizar la función interna de PHP llamada “htmlspecialchars” o “htmlentities”. Estas funciones convierten ciertos caracteres en sus equivalentes en HTML, evitando así ataques de inyección de código.
Aquí tienes un ejemplo de cómo podrías utilizar htmlspecialchars en tu fragmento de código:
Al utilizar htmlspecialchars para escapar del valor de $SomeVariable, te aseguras de que cualquier carácter potencialmente malicioso se convierta en su equivalente seguro en HTML. Esto ayuda a prevenir ataques de inyección de código y garantiza que tu aplicación permanezca segura.