Tal vez estoy siendo un poco paranoico, pero ya que estoy re-escritura de un módulo de contacto, la siguiente pregunta vino a la mente:¿Qué tan seguras son las funciones nativas de php para usar con entradas no filtradas?
¿Puedo utilizar la entrada sin filtrar en funciones nativas de PHP?
Es fácil de desinfectar cosas para poner en una base de datos, salida a la pantalla, etc, pero me preguntaba si, por ejemplo, la siguiente declaración podría ser peligroso:
if (file_exists($_POST['brochure'])) {
// do some stuff
}
Si alguien de alguna manera para publicar a esa página, ¿podría explotarse el código anterior?
El código anterior es solo un ejemplo, puedo pensar en otras funciones que uso al procesar un formulario.
Editar: Gracias a todo el mundo, los file_exists en el ejemplo es en realidad parte de una función de saneamiento pero cuando la limpieza, se utilizan las funciones de php por lo que se está convirtiendo en una historia huevo y la gallina: Para utilizar las funciones, tengo para limpiar, pero para limpiar tengo que usar funciones.
De todos modos, tengo algunas ideas nuevas ahora.
php tiene acceso a mucha más archivos que Apache. Dejar de mostrar los archivos .ht * y .ini no evitará que php los lea. – Marius
@Marius esto es muy cierto. – UnkwnTech
excelente punto de caballeros. Estoy aprendiendo cosas impactantes aquí :) – m42