Sécurisation AJAX / PHP ?

Résolu/Fermé
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 - 3 oct. 2011 à 18:23
jordane45 Messages postés 38162 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 mai 2024 - 24 févr. 2015 à 15:56
Bonjour à tous,

Je suis pris d'un gros doute. Je développe un site en Javascript avec des appels AJAX vers des pages PHP en charge de récupérer des infos en BDD, et de les renvoyer au Javascript qui les met en forme.

Seulement voilà : ces données sont d'ordre public, donc pas de sécurisation particulière. Mais alors : est-ce que n'importe qui qui place de l'AJAX sur son site, pointant vers mes pages PHP, est capable de récupérer mes infos en base ?!

J'ai parfois l'impression que mon site est une porte ouverte à tous les pirates !

Merci de vos avis :-)


A voir également:

4 réponses

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
Modifié par avion-f16 le 3/10/2011 à 18:38
Salut,

Avec l'objet XmlHttpRequest, il n'est pas possible d'effectuer des requêtes sur des domaines différents que celui de la page, et ce, pour des raisons de sécurité. Non pas pour la sécurité contre le vol d'informations, mais pour ne pas faire exécuter à un utilisateur des actions sur un site en usurpant ses privilèges (les droits qu'il possède en étant identifié), par exemple, en faisant une requête vers « http://example.com/compte/supprimer » ou une requête POST (formulaire) vers « http://example.com/forums/sujets/nouveau »

Mais un site externe peut toujours récupérer le code source d'une page, ou même le contenu généré par le fichier retournant les informations en base de données grâce à un script sur le serveur (en PHP, on utilise cURL ou file_get_contents).

La pensée mène le monde.
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
3 oct. 2011 à 19:51
Merci beaucoup, c'est justement l'information sur la sécurité de l'objet XMLHTTPRequest.
Me voilà rassuré :-)
0
Faux, c'est possible ....

http://www.xul.fr/scripts/ajax-entre-sites.php
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
Modifié par Mihawk le 4/10/2011 à 17:44
J'ai une autre question maintenant.
Sur mon site, j'utilise des variables globales javascript qu'Ajax transforme en variables GET envoyées au PHP.

Le PHP, en fonction de ces GET, autorise ou non des modification en base de données.

Mais voilà peut-être une énorme faille : le javascript étant exécuté côté client, est-il possible que l'internaute modifie les variables globales (genre avec GreaseMonkey) pour détourner la sécurisation mise en place ?

Si oui, que suis-je obligé de remplacer l'utilisation de ces get par des $_session ?

Merci !

[EDIT] : je n'utilise bien sur pas QUE des get.
Mais en gros je vérifie qu'une session d'authentification existe bien ; si oui, je récupère une get que j'insère dans la requete. Mais en fait c'est pas du tout sécuritaire, il faut que je change cela !!


Mihawk
"Tant qu'on ne fait pas, on ne sait pas."
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
4 oct. 2011 à 18:21
Oui, l'internaute peut éditer la variable via la console intégrée au navigateur ou même récupérer l'URL de la requête AJAX ainsi que la liste des paramètres GET, puis l'entrer dans sa barre d'URL.

Donc oui, il vaut mieux utiliser les sessions qui ne peuvent être modifiées par l'utilisateur.
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
6 oct. 2011 à 12:22
Ok parfait, merci de ces conseils j'ai pu sécuriser les API sensibles :-)
0
comment t'a pu réglé xa stp
0
jordane45 Messages postés 38162 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 mai 2024 4 658 > Demandy
24 févr. 2015 à 15:56
Bonjour (quand même),
Il semble qu'il ai simplement suivi les conseils donnés dans les réponses précédentes..... utilisation des SESSION par exemple...
0