Sécurisation AJAX / PHP ?

Résolu/Fermé
Mihawk
Messages postés
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
- 3 oct. 2011 à 18:23
jordane45
Messages postés
36305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 septembre 2022
- 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 :-)


4 réponses

avion-f16
Messages postés
18909
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 septembre 2022
4 426
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
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
842
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
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
842
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
18909
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 septembre 2022
4 426
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
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
842
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
36305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 septembre 2022
4 347 > 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