[Résolu] Comment pousser les données vers les clients
-
- Cet utilisateur a supprimé son compte et n’existe plus.
- Messages : 6340
- Inscription : 29 décembre 2010 à 18:15
je cherche une solution pour pousser les données du serveur vers les clients qui se connectent sur mon site.
Aujourd'hui je lance des requêtes HTTP régulières depuis les clients, mon application serveur renvoie les données nouvelles depuis la dernière fois que ce client à envoyé une telle requête.
C'est assez lourd en bande passante, et si j'ai plusieurs utilisateurs simultanés, je pense que ça active la protection DDOS sur mon site.
Je voudrais passer à Websockets qui, si j'ai bien compris, est une liaison TCP qu'on établit via une requête HTTP.
Question : Y a-t-il un support websockets côté serveur sur franceserv ?
Je suis naturellement preneur de toute autre suggestion :-)
Merci à tous,
Laurent
D'accord, je pense que c'est une bonne méthode mais ça n'activera pas forcément une mitigation anti-DDoS. Tant que les requêtes sont correctement formulées, "intelligentes" et que ça ne provoque pas des centaines de requêtes par seconde sans arrêt ça devrai fonctionner. Après tout dépend de ce que c'est comme requêtes mais là actuellement je ne vois pas de soucis.laurentponthieu a écrit :je cherche une solution pour pousser les données du serveur vers les clients qui se connectent sur mon site.
Aujourd'hui je lance des requêtes HTTP régulières depuis les clients, mon application serveur renvoie les données nouvelles depuis la dernière fois que ce client à envoyé une telle requête.
C'est assez lourd en bande passante, et si j'ai plusieurs utilisateurs simultanés, je pense que ça active la protection DDOS sur mon site.
Il ne sera pas possible d'utiliser un websocket sur un port quel qu'il soit depuis l'extérieur, par contre votre site peut en utiliser un vers l'extérieur mais le script PHP ne pourra pas tourner sans limitation de temps.laurentponthieu a écrit :Je voudrais passer à Websockets qui, si j'ai bien compris, est une liaison TCP qu'on établit via une requête HTTP.
Question : Y a-t-il un support websockets côté serveur sur franceserv ?
-
- Cet utilisateur a supprimé son compte et n’existe plus.
- Messages : 6340
- Inscription : 29 décembre 2010 à 18:15
Mes requêtes sont peu nombreuses (une par seconde pour chaque IP cliente, environ 10 clients), et de l'ordre de 100 octets (up) et 1000 octets (down) respectivement.
Si ce n'est pas le DDoS, c'est peut-être la mire d'attente de 5 secondes que le site sert de temps en temps qui trompe mon app ?
Suggestion : pour que mon application cliente distingue le message d'attente "on valide votre navigateur" d'une erreur, pouvez-vous m'aider à les distinguer ? Par exemple, y a-t-il un code HTTP ou une balise particulière (et stable) dans le HTML retourné pour dire "on valide le navigateur" ?
Compris pour les websockets. Merci.
lp
Je ne connais pas votre application mais il n'y a pas et il n'y a pas eu de temps d'attente ou de mitigation anti-DDoS de 5 secondes sur votre site depuis sa création.laurentponthieu a écrit :Si ce n'est pas le DDoS, c'est peut-être la mire d'attente de 5 secondes que le site sert de temps en temps qui trompe mon app ?
Si par contre vous avez eu ces 5 secondes d'attente, c'est que votre application ne se connecte pas correctement en utilisant par exemple uniquement l'adresse IP du service Web sans mentionner l'adresse URL de votre site. Comme nous sommes sur un hébergement mutualisé avec plusieurs sites différents derrière une même adresse IP, votre application ne pourra pas accéder à votre site précisément avec uniquement une adresse IP.
Dans ce cas seulement et comme ce genre de connexion erronée n’aboutira pas même sans les 5 secondes, il y a effectivement une mitigation de 5 secondes pour protéger les services car les criminels sur Internet procèdent généralement ainsi pour lancer leurs attaques.
Je pense alors que vous avez un problème autre part. Si vous souhaitez que je regarde, communiquez moi s'il vous plait ici en public ou par mail en privé, l'adresse de votre site et la date/heure à laquelle vous avez effectués des essais afin que je regarde de mon coté.
Tout dépend de la mitigation anti DDoS en cours, si elle est L7 le code HTTP retourné reste celui par défaut, par contre le contenu de la page affichera entre autre le texte "Checking your browser before accessing to". Il n'y a jamais eu de mitigation L7 sur votre site d'après mes journaux.laurentponthieu a écrit :pour que mon application cliente distingue le message d'attente "on valide votre navigateur" d'une erreur, pouvez-vous m'aider à les distinguer ? Par exemple, y a-t-il un code HTTP ou une balise particulière (et stable) dans le HTML retourné pour dire "on valide le navigateur" ?
Par contre si la mitigation anti DDoS en cours est autre (L3/L4 etc ...), le code HTTP retourné ne sera pas un code HTTP habituel, probablement un code HTTP 302 avec aucun texte.
Le plus simple pour vous serai en plus d'afficher le résultat de votre réponse, un code pour vérifier que c'est bien votre site qui répond et pas une application de sécurité. Par exemple dans le body ou pourquoi pas dans l'entête HTTP.
-
- Cet utilisateur a supprimé son compte et n’existe plus.
- Messages : 6340
- Inscription : 29 décembre 2010 à 18:15
Non, pas de problème de ce côté.elodie a écrit :Si par contre vous avez eu ces 5 secondes d'attente, c'est que votre application ne se connecte pas correctement en utilisant par exemple uniquement l'adresse IP du service Web sans mentionner l'adresse URL de votre site.
Voici ce que j'ai reçu :elodie a écrit :Je pense alors que vous avez un problème autre part. Si vous souhaitez que je regarde, communiquez moi s'il vous plait ici en public ou par mail en privé, l'adresse de votre site et la date/heure à laquelle vous avez effectués des essais afin que je regarde de mon coté.
Code : Tout sélectionner
<html>
<head>
<meta http-equiv="pragma" content="no-cache" />
</head>
<body>
<div style="top:0;left:0;width:100%;height:100%;position:absolute;display:table;">
<span style="display:table-cell;vertical-align:middle;text-align:center;">
<img src="/franceserv_anti_ddos_waiting.gif" alt="waiting" height="48" width="48" /><br/><h1>Checking your browser before accessing to idanet.franceserv.fr ...</h1>
<p>This process is automatic. Your browser will redirect to your requested content shortly.</p><p>Please allow up to 5 seconds ...</p><br/><p>DDoS protection by FranceServ Hébergement</p>
<p><img src="/franceserv_anti_ddos_logo_50x50.png" alt="franceserv logo" height="50" width="50" /></p>
</span>
</div>
<script type="text/javascript" src="/franceserv_anti_ddos_aes.min.js" ></script>
<script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("ec2f93cf2dcd46e7dfdff935cd211354"),b=toNumbers("db317aec7b8ee885838bf76753880ad0"),c=toNumbers("323fb639cf7610ab5d8db978e9d5b918");document.cookie="FSH_ANTI_DDOS="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; setTimeout(function(){location.href="https://idanet.franceserv.fr/IdanetServer/testConnection.php?antiddos_check=1";}, 1000);</script>
</body>
</html>
laurentponthieu a écrit :pour que mon application cliente distingue le message d'attente "on valide votre navigateur" d'une erreur, pouvez-vous m'aider à les distinguer ? Par exemple, y a-t-il un code HTTP ou une balise particulière (et stable) dans le HTML retourné pour dire "on valide le navigateur" ?
Merci, c'est en effet le plus simple ! Je vais faire comme ça.elodie a écrit : Le plus simple pour vous serai en plus d'afficher le résultat de votre réponse, un code pour vérifier que c'est bien votre site qui répond et pas une application de sécurité. Par exemple dans le body ou pourquoi pas dans l'entête HTTP.