Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 12 Enero 2020, 23:07 pm



Título: [Pregunta]: ¿Por qué suceden los max_execution?
Publicado por: Leguim en 12 Enero 2020, 23:07 pm
Pasa que a veces sucede que un programa (php) tiene que hacer una tarea y el muy hdpta se queda colgado y tarda mucho... después me manda un error algo de max excution exceded a veces me pasa ... no siempre...

¿Como arreglo eso?  :xD


Título: Re: [Pregunta]: ¿Por qué suceden los max_execution?
Publicado por: engel lex en 12 Enero 2020, 23:10 pm
Citar
¿Por qué suceden los max_execution?

se suceden porque se superan los maximos XXX de ejecución! XD

el como se arregla hay 2 vias

1- simplemente los cambias en php.ini y aumentas el valor
2- probablemente tu script es muy ineficiente (usualmente los predeterminado funcionan para casi cualquier caso incluso profesional con miles de usuarios) así que toca buscar que está desbondando el valor y arreglarlo... es decir, esta pregunta es tan general como decir "cuando programo mis programas fallan, como hago que no fallen" pueden ser mil cosas diferentes, así que sin detalles esa es la unica respuesta creo yo


Título: Re: [Pregunta]: ¿Por qué suceden los max_execution?
Publicado por: Leguim en 13 Enero 2020, 00:43 am
No te voy a preguntar sobre que puede ser porque ya me dijiste que pueden ser muchas cosas...

En resumen ¿Me podrías dar un ejemplo de un script cualquiera de php donde pueda estar "desbondando"? Gracias!!!  ;-)


Título: Re: [Pregunta]: ¿Por qué suceden los max_execution?
Publicado por: @XSStringManolo en 13 Enero 2020, 00:45 am
Como te dice engel, en el php.ini tienes el max_exec_time que por defecto tiene de valor 30. Que son los segundos máximos de duración de ejecución de PHP. Puedes cambiarlo. Normalmente se usa para cerrar instancias de PHP que quedaron abiertas por error, o para tener un límite para mejorar el rendimiento.

A parte de esto, también el servidor puede tener un tiempo máximo asignado para dejar una conexión abierta. En algunos paquetes de software apache viene preconfigurado a 15 máximos por conexión. Siempre enocado a rendimiento.

Como también te comenta Engel Lex, si no es una tarea intensiva, no es normal que se tarde más de 30 segundos en tareas comunes enfocadas a la web.


Título: Re: [Pregunta]: ¿Por qué suceden los max_execution?
Publicado por: [u]nsigned en 13 Enero 2020, 00:50 am
Código
  1. <?php

https://www.php.net/manual/es/function.set-time-limit.php


Título: Re: [Pregunta]: ¿Por qué suceden los max_execution?
Publicado por: Leguim en 13 Enero 2020, 01:11 am
Código
  1. <?php
  2. set_time_limi(0);

https://www.php.net/manual/es/function.set-time-limit.php

Gracias!

voy a dejar el tema abierto, por las dudas...


Título: Re: [Pregunta]: ¿Por qué suceden los max_execution?
Publicado por: engel lex en 13 Enero 2020, 01:52 am
No te voy a preguntar sobre que puede ser porque ya me dijiste que pueden ser muchas cosas...

En resumen ¿Me podrías dar un ejemplo de un script cualquiera de php donde pueda estar "desbondando"? Gracias!!!  ;-)

hombre un ejemplo aqui es casi absurdo... nada tendrá que ver con la vida real... sim simple sleep(31) te dará max time execution failed si el php.ini está default, pero dudo que tu codigo haga eso... primer ve que maximo estás violando en que script... si no sabes que es despues de ver tu codigo, simplemente tira un debug y mira en tiempo real (a menos que sea de tiempo)...


Título: Re: [Pregunta]: ¿Por qué suceden los max_execution?
Publicado por: Leguim en 13 Enero 2020, 06:00 am
Tal parece que por lo que me dí cuenta hace unos minutos es que tarda tanto ciertos sistemas, no por la forma en la que lo programe (me había asustado  :xD) por ejemplo un formulario aveces pasaba que tardaba mucho pero era porque uso google recaptcha v2 (que ya medio foro sabe que lo uso de tantos temas que publique sobre eso  :xD) entonces cuando tengo mala conexión a internet (los vecinos me deben estar robando wifi o anda saber) y lo mismo me pasó ahora con la librería de PHPMailer que tarda un poco más de lo normal porque son librerías o apis que necesitan conexión a internet no tienen nada de localhost... es por eso.. igualmente esto no lo probé tampoco... pero estoy seguro un 80% igualmente mañana lo pruebo con el internet conectado por cable...

Uff que traspire cuando me dijeron que el código podía estar mal   :o :o igualmente cambie el máximo de tiempo a 3 minutos (60*3) para evitar que en un futuro si un usuario tiene una conexión mala como yo ahora le pase eso... entonces el programa se va a quedar esperando un poco más..

Eso explicaría por qué un mismo sistema (envío de un formulario con recaptcha) a veces tarda pocos segundos y otra veces tarda minutos y me manda el error.


Título: Re: [Pregunta]: ¿Por qué suceden los max_execution?
Publicado por: engel lex en 13 Enero 2020, 06:26 am
Citar
Uff que traspire cuando me dijeron que el código podía estar mal   :o :o igualmente cambie el máximo de tiempo a 3 minutos (60*3) para evitar que en un futuro si un usuario tiene una conexión mala como yo ahora le pase eso... entonces el programa se va a quedar esperando un poco más..

mala idea, mas bien muchos usuarios bajan el tiempo de ejecucion a 5 segundos... es decir, del usuario no depende, depende del servidor y usualmente tienen de 100mbps para arriba, subir el tiempo de ejecucion solo te hace vulnerable a ataques de flooding como slow loris (https://en.wikipedia.org/wiki/Slowloris_(computer_security))



Título: Re: [Pregunta]: ¿Por qué suceden los max_execution?
Publicado por: Leguim en 13 Enero 2020, 06:41 am
mala idea, mas bien muchos usuarios bajan el tiempo de ejecucion a 5 segundos... es decir, del usuario no depende, depende del servidor y usualmente tienen de 100mbps para arriba, subir el tiempo de ejecucion solo te hace vulnerable a ataques de flooding como slow loris (https://en.wikipedia.org/wiki/Slowloris_(computer_security))



Estuve viendo, (ya lo deje como estaba para no hacer macanas) parece un ataque similar a un ataque ddos, no?


Título: Re: [Pregunta]: ¿Por qué suceden los max_execution?
Publicado por: engel lex en 13 Enero 2020, 06:48 am
DDoS como tal no es un ataque, es una clasificacion, en este caso no es necesaria ni si quiera la primera D (distribuido), este ataque es un DoS super comodo para el atacante porque no consume practicamente nada de ancho de banda, lo que hace es abrir conexiones y mentenerlas vivas tanto tiempo como sea posible enviando datos muy lentamente (como si tuviera un internet de 1 byte por segundo... literalmente)


Título: Re: [Pregunta]: ¿Por qué suceden los max_execution?
Publicado por: @XSStringManolo en 13 Enero 2020, 14:34 pm
Estuve viendo, (ya lo deje como estaba para no hacer macanas) parece un ataque similar a un ataque ddos, no?
Te lo dice en la primera frase del link xD
Cita de: wikipedia
Slowloris is a type of denial of service attack tool
Denial of Service. (DoS). Un DDoS es un ataque DoS distribuido(desde varias fuentes). El ataque que te linkea abre múltiples conexiones a la vez, y como tu servidor las mantiene abiertas, ocupa el máximo de conexiones simulataneas que puede atender tu servidor. Cuando un usuario legítimo de tu aplicación intenta conectarse a tu servidor, este no puede abrir una conexión porque el atacante ya tiene abiertas el máximo posible.