Bonjour,
Je suis en train de créer un réseau social un peu à la Facebook pour m’entraîner. Le concept est simple, j’ai un espace membre avec des utilisateurs qui peuvent se suivre. Ensuite il y a un thread principale ou l’on peut visualiser tous les posts des membres que l’on suit (comme Facebook en gros sauf qu’à la place d’amis ce sont des follows comme sur twitter).
J’ai utilisé Ajax afin que le thread principale affiche les nouveaux posts sans avoir besoin de recharger la page. Mon implémentation fonctionne parfaitement néanmoins je suis sceptique. Voilà comme je procède :
-
j’ai une page post.php dans laquelle il y a deux fonctions :
getPost()
etpostPost()
. La première permet de récupérer tous les posts des utilisateurs qu’on follow, et la deuxième permet de poster un post. L’appel de ces deux fonctions se fait à l’aide d’unGET
. Si on appellepost.php?getpost=true
alors on appelle la fonctiongetPost()
sinon on appelle l’autre fonction. -
Maintenant j’ai une page
post.js
qui appelle les deux fonctionsgetPost()
etpostPost()
de la pagepost.php
. J’utilise l’objetXMLHttpRequest
et j’appelleXHR.open("GET", "post.php?getpost=true")
si je veux appelergetPost()
etXHR.open("POST", "post.php")
si je veux appeler `postPost()``
Tout fonctionne très bien néanmoins je me demande si il n’y a pas des problèmes de sécurité avec cette implémentation ? Je ne serai pas dire quoi, mais j’ai l’impression qu’utiliser un paramètre GET peut permettre à l’utilisateur malicieux de faire n’importe quoi, d’accéder à la page post.php
qui peut-être constitue un problème.
Le deuxième problème que j’ai c’est que dans mon fichier .js
je fais à la fin const interval = window.setInterval(getSearchResult, 100);
mais du coup si il y a plein d’utilisateurs le serveur va être complètement dépassé non ? Y a t-il une autre solution qu’utiliser cette fonction ? Par exemple c’est au serveur de dire au client quand il y a un nouveau post, au lieu que ça soit toujours à moi de demander si de nouveaux posts sont apparues.
J’espère que mes problèmes sont clairs
Merci beaucoup.