Question

J'utilise jquery ajax pour des mises à jour de mon serveur.Je suis sûr que j'ai mis en place les mesures appropriées pour que seuls mes appels AJAX peuvent publier des données.

Ma pile est PHP sur Apache à l'encontre d'un backend MySQL.

Des conseils très apprécié!

Était-ce utile?

La solution

Toute demande que les appels AJAX dans vos pages peut également être faite par quelqu'un en dehors de l'application.Si fait correctement, vous ne serez pas en mesure de dire si elles ont été faites dans le cadre d'un appel AJAX à partir de votre webapp ou à la main/par d'autres moyens.

Il y a deux scénarios, je pense que vous pourriez être parler quand vous dites que vous voulez vous assurer que seuls vos appels AJAX peuvent publier des données:soit vous ne voulez pas qu'un utilisateur malveillant pour être en mesure de publier des données qui interfère avec un autre utilisateur de données ou que vous voulez réellement pour limiter les posts pour être dans le "flux" d'un multi-opération demande.

Si vous êtes concernés par le premier cas (quelqu'un affichage de données malveillantes pour/comme un autre utilisateur) et la solution est la même si vous êtes en utilisant AJAX ou pas -- vous avez juste à authentifier l'utilisateur par quelque moyen que ce soit est nécessaire -- généralement par l'intermédiaire d'un cookie de session.

Si vous êtes concernés par le second cas, alors vous allez avoir à faire quelque chose comme enjeu d'un jeton unique à chaque étape du processus, et de stocker le jeton attendu sur le côté serveur.Puis, quand une demande est faite, vérifiez qu'il y a une entrée correspondante sur le côté serveur pour l'action qui est en train d'être prises et que l'jetons de match et que le jeton n'a pas encore été utilisées.Si il n'y est pas, vous rejeter la demande, si il y est, alors vous marque ce jeton comme utilisé et le processus de la demande.

Si ce qui vous concerne, c'est autre chose que l'un de ces deux scénarios, alors la réponse dépendra plus de détails que vous avez fournis.

Autres conseils

Des sessions d'utilisation de veiller à ce que toute l'Ajax postes sont fait dans un authentifié contexte.Pensez à votre code Ajax comme juste un autre client à votre serveur, il devient plus facile de s'attaquer à des problèmes d'authentification de cette façon.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top