Sécurisation AJAX / PHP ?

Résolu
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Merci beaucoup, c'est justement l'information sur la sécurité de l'objet XMLHTTPRequest.
Me voilà rassuré :-)
0
logisticien
 
Faux, c'est possible ....

http://www.xul.fr/scripts/ajax-entre-sites.php
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Ok parfait, merci de ces conseils j'ai pu sécuriser les API sensibles :-)
0
Demandy
 
comment t'a pu réglé xa stp
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Demandy
 
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