El código PHP malicioso puede ejecutarse en caché. ¿Solución?

0

Tengo un módulo que guardo algunos detalles (w / c es de la entrada del usuario) para disminuir la carga de mi base de datos

La forma en que me caché es creando una página html con los detalles del usuario usando fwrite();

el problema es después de probar el módulo del usuario, si ingreso esto

<?php 
 echo "this is from the input of the user";
?>

dentro del área de texto. Después de eso, estos detalles irán al caché, y luego, cuando cargue el archivo de caché, se ejecutó el código php.

La única solución que tengo es strreplace() este carácter <? desde su entrada. ¿Hay alguna solución?

    
pregunta Efaz AÑecoh J-ra 07.11.2012 - 15:43
fuente

1 respuesta

5

La solución es no cachear de esta manera. Para empezar, <? es solo una de las varias formas de inyectar PHP, incluidos <script language="PHP"> y <?php . Las listas negras son siempre una mala idea.

Su sistema de almacenamiento en caché no funciona en primer lugar en términos de rendimiento porque, cuando el servidor de PHP se convierte en un problema de rendimiento, el rendimiento de su disco también se convierte en un problema. En ese momento no estás mejorando el rendimiento en absoluto.

Para el almacenamiento en caché adecuado, desea almacenamiento en memoria. Eche un vistazo a memcached (y a Módulo PHP ), APC , o una solución NoSQL en memoria como Redis . Estos son proyectos maduros que fueron diseñados para hacer exactamente lo que estás tratando de hacer.

    
respondido por el Polynomial 07.11.2012 - 15:52
fuente

Lea otras preguntas en las etiquetas