PHP DateTime, ¿riesgos de seguridad?

1

¿Se está preguntando si existe algún riesgo de seguridad si utiliza el siguiente código?

$val = $_GET['date'];
$date = new DateTime($val);

Gracias

    
pregunta MagExt 25.06.2017 - 04:20
fuente

1 respuesta

2

Si su pregunta es: "¿hay problemas de seguridad conocidos con PHP que puedan explotar esto?" ... considere el escenario donde la entrada inesperada podría:

  • haz que DateTime emita un error o cause una excepción que tu programa no esté manejando más abajo; podría causar una salida incorrecta o peor, un HTTP 5xx.
  • alguien que mantiene este código después de que pudieras usar la información de una manera que no lo hiciste (sí, esto puede llevar a debates sobre la falta de atención de los programadores, pero sucede más a menudo de lo que crees).

Hay riesgos de seguridad cada vez que utiliza una entrada externa no confiable en su código directamente. Los insectos desagradables tienen una forma de aparecer en los momentos más inconvenientes

  • Los desbordamientos de búfer, especialmente en software ampliamente utilizado como PHP, no deberían ser comunes, pero han ocurrido cosas más raras.
  • Escapes de contexto podrían ser posibles

Esto no tiene que suceder con la versión actual de PHP con la que está usando / probando. ¿Dónde se desplegará todo su código? ¿Se usarán versiones anteriores o diferentes motores / bibliotecas PHP? ¿Una versión / motor más reciente tendrá un error no descubierto?

Entonces, finalmente, la pregunta se reducirá a: ¿Cuál es la razón de peso para que corras este riesgo, especialmente cuando la alternativa más segura no es cara (esfuerzo o recursos)?

    
respondido por el Sas3 25.06.2017 - 04:52
fuente

Lea otras preguntas en las etiquetas