Conseils de sécurité pour jquery ajax data post?

J’utilise jquery ajax pour publier des mises à jour sur mon serveur. Je souhaite m’assurer que j’ai mis en place les mesures appropriées pour que seuls mes appels AJAX puissent publier des données

Ma stack est PHP sur Apache contre un backend MySQL.

Conseils grandement appréciés!

Toute demande des appels AJAX dans vos pages peut également être effectuée par une personne extérieure à l’application. Si cela est fait correctement, vous ne pourrez pas savoir s’ils ont été passés dans le cadre d’un appel AJAX à partir de votre application Web, ou manuellement ou autrement.

Je peux penser à deux scénarios dont vous pourriez parler lorsque vous dites que vous voulez vous assurer que seuls vos appels AJAX peuvent publier des données: vous ne voulez pas qu’un utilisateur malveillant puisse publier des données qui interfèrent avec un autre les données de l’utilisateur ou si vous voulez réellement limiter les publications à être dans le “stream” d’une opération à plusieurs demandes.

Si vous êtes concerné par le premier cas (quelqu’un qui publie des données malveillantes sur / en tant qu’un autre utilisateur), la solution est la même, que vous utilisiez ou non AJAX – il vous suffit d’authentifier l’utilisateur par tout moyen nécessaire – généralement via une session biscuit.

Si vous êtes préoccupé par le second cas, vous devrez alors faire quelque chose comme émettre un jeton unique à chaque étape du processus et stocker le jeton attendu du côté serveur. Ensuite, lorsqu’une demande est faite, vérifiez qu’il existe une entrée correspondante côté serveur pour l’action entreprise, que les jetons attendus correspondent et que ce jeton n’a pas encore été utilisé. S’il n’y en a pas, vous rejetez la demande, le cas échéant, vous marquez ce jeton comme utilisé et vous traitez la demande.

Si ce qui vous préoccupe est autre chose que l’un de ces deux scénarios, la réponse dépendra de plus de détails que ceux que vous avez fournis.

Utilisez des sessions pour vous assurer que toutes les publications Ajax sont effectuées dans un contexte authentifié. Considérez votre code Ajax comme un simple client sur votre serveur. Il est ainsi plus facile de résoudre les problèmes d’authentification.