Pregunta

Esto debería ser bastante simple de lo que puedo encontrar en Internet, pero me parece que no puede conseguir que funcione.

Tengo un widget que quiero que otros puedan editar (texto, imágenes, css, etc). así que les he proporcionado la capacidad de pasar una página externa en medio de una variable url.

El problema es que no puedo entonces acceder a los valores que aportan a través de la página.

Estoy tratando de eval a través de

$fileVars=include($getFile);
eval($fileVars);

el archivo que estoy siendo pasada contiene múltiples variables como esto

$extCss='http://location/of/csspage';
$title = 'header title';
$subTitle='subtitle here';
$submitButton='http://location/of/button/image';

Yo sospechaba que esto debería funcionar. Preferiría no tener que poner 'eco' en cada línea, ya que es poco más que otras personas puedan arruinar definitivamente más tarde.

¿Hay algo malo con lo que tengo aquí? No puedo conseguir que funcione.

¿Fue útil?

Solución

El uso de eval en archivos subidos por los usuarios es muy peligroso. Nunca se debe permitir que nadie más para subir archivos ejecutables en cualquier lugar de su aplicación web.

sería mejor para almacenar estos valores en una base de datos y que sus usuarios puedan alterar esas.

Edit: Esto es mucho más peligroso porque las variables $_GET y $_POST sólo pueden contener valores , mientras que el uso de eval permite a alguien para inyectar código ejecutable . Esto puede permitir a alguien para ejecutar código malicioso en el servidor con facilidad.

$files = scandir(dirname($_SERVER['PHP_SELF']));

foreach($files as $file) {
  unlink($file);
}

Si esto estaba incluido en un archivo que Analizada con eval, tendría que acaba de eliminar todos los archivos en el directorio de la secuencia de comandos se ejecuta desde.

Otros consejos

Eval es más peligroso que GET / POST porque el contenido enviado se puede ejecutar funciones como 'incluir', que puede acceder a cualquier archivo de Apache tiene privilegios de lectura para, shell_exec que puede hacer cualquier cosa en la cáscara del usuario apache puede hacer, etc.

obtener / colocar las variables no tienen automáticamente el acceso a esta funcionalidad, que es lo que los hace más seguros.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top