Forum général.général Apache soumet des requêtes incomplètes à PHP

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
17
nov.
2017

Bonjour
J'ai, chez moi, un service web/php hébergé par apache.
Mon client l'attaque en Python.
Son firewall semble parfois bloquer les connexions (POST en HTTPS).

[Fri Nov 17 09:38:47.242105 2017] [ssl:info] [pid 26770] [client XXX.XXX.XXX.XXX:39058] AH01964: Connection to child 10 established (server xxx.xxx.xx:443)
[Fri Nov 17 09:48:48.739195 2017] [ssl:info] [pid 26770] (70007)The timeout specified has expired: [client XXX.XXX.XXX.XXX:39058] AH01991: SSL input filter read failed.
[Fri Nov 17 09:48:48.739275 2017] [ssl:info] [pid 26770] (70014)End of file found: [client XXX.XXX.XXX.XXX:39058] AH01991: SSL input filter read failed.
[Fri Nov 17 09:48:48.739303 2017] [ssl:info] [pid 26770] (70014)End of file found: [client XXX.XXX.XXX.XXX:39058] AH01991: SSL input filter read failed.
[Fri Nov 17 09:48:48.739462 2017] [ssl:info] [pid 26770] (70014)End of file found: [client XXX.XXX.XXX.XXX:39058] AH01991: SSL input filter read failed.
[Fri Nov 17 09:48:48.875893 2017] [ssl:info] [pid 26770] (70014)End of file found: [client XXX.XXX.XXX.XXX:39058] AH01992: SSL library error 1 reading data

La cause du problème n'est pas le sujet pour l'instant, mais plutôt le comportement d'apache et PHP.
La requête est un POST qui envoie deux fichiers (Multipart).
Malgré que la connexion se finisse mal, Apache soumet à PHP les données incomplètes reçues, 10 minutes plus tard.
Mais PHP ne voit qu'un seul fichier.

Est il possible de configurer Apache pour qu'il ne soumette pas les requêtes incomplètes à PHP ?

Merci.

David.

  • # regler le timeout

    Posté par  . Évalué à 2.

    [Fri Nov 17 09:48:48.739195 2017] [ssl:info] pid 26770 The timeout specified has expired : [client XXX.XXX.XXX.XXX:39058] AH01991: SSL input filter read failed.

    regler le probleme de timeout pourrait solutionner ton probleme
    si ca fonctionne avec d'autres clients que celui-ci
    - verifier aussi les tiemout sur le firewall du client
    - augmenter le timeout coté client
    si ca fait la meme chose chez les autres clients
    - augmenter le timeout coté serveur,
    - verifier aussi les tiemout sur le firewall de votre coté

    • [^] # Re: regler le timeout

      Posté par  . Évalué à 1.

      Je n'ai pas de problème avec les autres clients, donc je soupçonne son firewall (fortinet?).
      Le client n'a d'ailleurs "avouer" que son firewall bloquaient les trames, les interprétant comme des attaques ( je reprends ses mots).
      Et que cette fonctionnalité/option n'est pas débrayable….
      Je n'ai pas trop envie de toucher au timeout serveur :
      - Pas de problème avec les autres clients.
      - La taille des fichiers est variable, je ne saurai pas quelle valeur mettre

      Ce qui m'embête surtout c'est qu'apache passe à PHP des données incomplètes.

      • [^] # Re: regler le timeout

        Posté par  . Évalué à 3.

        le fortinet du client :
        - soit a un timeout trop court pour ta transaction
        - soit fait de l'analyse de paquet, et il faut voir pour le desactiver sur les flux avec toi, ce qui ne semble pas debrayable, et là il faut negocier entre vous ce qui peut etre mis en place entre son equipe securité et la tienne

        apache ne sait pas que le fichier est incomplet,
        il a juste un arret de la connexion, laissant supposer que la transmission est terminée.

        à toi peut-etre alors, coté php, de faire une verification de pertinence du fichier, avant import dans la base, ou stockage definitif.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.