Question

Quelle est la meilleure pratique pour s'assurer que certains appels ajax vers certaines pages ne sont acceptés que par des utilisateurs authentifiés ?

Par exemple:

Disons que j'ai une page principale appelée blog.php (Je sais, la créativité abonde).Disons aussi qu'il existe une page appelée supprimer.php qui cherche le paramètre post_id puis supprime une entrée d'une base de données.

Dans cet exemple très artificiel, il existe un mécanisme sur blog.php qui envoie une requête via ajax à delete.php pour supprimer une entrée.

Désormais, ce mécanisme ne sera disponible que pour les utilisateurs authentifiés sur blog.php.Mais qu'est-ce qui empêche quelqu'un d'appeler simplement delete.php avec un tas de nombres aléatoires et de tout supprimer du site ?

J'ai fait un test rapide où j'ai défini une variable de session dans blog.php, puis j'ai fait un appel ajax à delete.php pour revenir si la variable de session était définie ou non. (ce n'était pas le cas).

Quelle est la manière acceptée de gérer ce genre de chose ?


D'ACCORD.J'ai dû être fou la première fois que j'ai essayé ça.

Je viens de faire un autre test comme celui que j'ai décrit ci-dessus et cela a parfaitement fonctionné.

Était-ce utile?

La solution

Vous aviez raison d'essayer d'utiliser des variables de session.Une fois que votre utilisateur s'est authentifié, vous devez stocker ces informations dans sa session afin que chaque page vue suivante les voie.Assurez-vous d'appeler session_start() sur les deux pages (blog.php et delete.php) avant d'accéder à $_SESSION.Assurez-vous également que les cookies sont activés. Sinon, vous devez transmettre un paramètre supplémentaire dans la chaîne de requête, généralement PHPSESSID=<.session_id()>.

Autres conseils

Il n'est pas recommandé de s'appuyer sur des sessions pour l'authentification sans effectuer d'actions supplémentaires.En savoir plus sur.

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