configuración de PHP y max_input_vars

2

Estoy buscando en el max_input_vars de php

  

¿Cuántas variables de entrada se pueden aceptar (el límite se aplica a $ _GET,   $ _POST y $ _COOKIE superglobal por separado). Uso de esta directiva.   mitiga la posibilidad de ataques de denegación de servicio que utilizan hash   colisiones Si hay más variables de entrada que las especificadas por este   directiva, se emite un E_WARNING y se ingresan otras variables de entrada.   truncado desde la solicitud.

Básicamente entiendo que esto limita la cantidad de variables que alguien puede enviar con POST / GET y las trunca si se dan más (con la advertencia levantada).

Lo que no está claro es cómo alguien puede usar los parámetros de publicación para crear

  

la posibilidad de ataques de denegación de servicio que utilizan colisiones hash

También tiene sentido disminuir sustancialmente el número allí. Si, por ejemplo, en mi aplicación nunca uso más del 20% de las variables POST , ¿puedo cambiar max_input_vars para decir 30? Si es así, ¿qué mejoras obtendré?

Si hay una diferencia, estoy usando php 5.5.10 en apache 2.4.7

    
pregunta Salvador Dali 02.04.2014 - 10:27
fuente

1 respuesta

2

Puede que no sea tan bueno para explicar el concepto de colisión de hash tan bueno como este external doc así que si no queda claro puedes echarle un vistazo.

En principio, los datos POST y GET utilizan una estructura de clave-valor. Al recibir los datos en una solicitud y al acceder a $ _POST, php deberá convertir la lista dada como una cadena que podría tener este aspecto

EzEzEzEzEzEzEzEz=&EzEzEzEzEzEzEzFY=&EzEzEzEzEzEzEzG8=&EzEzEzEzEzEzEzH%17=&EzEzEzEzEzEzFYEz=&EzEzEzEzEzEzFYFY=&EzEzEzEzEzEzFYG8=&EzEzEzEzEzEzFYH%17=&EzEzEzEzEzEzG8Ez=&EzEzEzEzEzEzG8FY=&EzEzEzEzEzEzG8G8=&

en un formulario para que pueda hacer, por ejemplo, esto:

echo $_POST["EzEzEzEzEzEzEzEz"];

la cadena no es ideal para acceder al valor, por lo que internamente se utiliza una función hash para transformarla en un valor hash resultante. El problema y el ataque potencial que max_input_vars pueden evitar que relacionado con el caso de que dos claves generen el mismo valor hash, por lo tanto, hash_collision, lo que causa un tiempo extra para cuidar dicha coalisión y permitiría usar una gran cantidad de CPU con una solicitud HTTP bastante simple.

    
respondido por el humanityANDpeace 02.04.2014 - 15:24
fuente

Lea otras preguntas en las etiquetas