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 -
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 :-)
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:
- Sécurisation AJAX / PHP ?
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Retour a la ligne avec Echo comment faire ? - Forum Webmastering
- Yggtorrent erreur ajax ✓ - Forum Webmastering
4 réponses
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.
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."
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.
Me voilà rassuré :-)
http://www.xul.fr/scripts/ajax-entre-sites.php