Sécurisation AJAX / PHP ?
Résolu/Fermé
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
-
3 oct. 2011 à 18:23
jordane45 Messages postés 38430 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 février 2025 - 24 févr. 2015 à 15:56
jordane45 Messages postés 38430 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 février 2025 - 24 févr. 2015 à 15:56
A voir également:
- Sécurisation AJAX / PHP ?
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Bouton php - Forum PHP
- Php alert ✓ - Forum PHP
- Retour a la ligne php - Forum Webmastering
4 réponses
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
Modifié par avion-f16 le 3/10/2011 à 18:38
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.
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.
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
Modifié par Mihawk le 4/10/2011 à 17:44
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."
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."
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
4 oct. 2011 à 18:21
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.
Donc oui, il vaut mieux utiliser les sessions qui ne peuvent être modifiées par l'utilisateur.
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
6 oct. 2011 à 12:22
6 oct. 2011 à 12:22
Ok parfait, merci de ces conseils j'ai pu sécuriser les API sensibles :-)
jordane45
Messages postés
38430
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 février 2025
4 735
>
Demandy
24 févr. 2015 à 15:56
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...
Il semble qu'il ai simplement suivi les conseils donnés dans les réponses précédentes..... utilisation des SESSION par exemple...
3 oct. 2011 à 19:51
Me voilà rassuré :-)
18 avril 2013 à 17:55
http://www.xul.fr/scripts/ajax-entre-sites.php