Appel ajax réservé au site lui même
Nicoconut
-
Nicoconut -
Nicoconut -
Bonjour,
Je cherche à reserver l'accès à certains flux xml appelés depuis le site que je développe aux utilisateurs du meme site. Je voudrais donc que seuls les utilisateurs de mon site puissent accèder à ces pages.
En d'autres termes je crée une API avec un ensemble de web services mais je voudrais que mon site soit la seule interface ayant accès à cette API.
J'ai cru comprendre que des sites comme facebook utilise une clé (puisqu'ils distribuent également des clés développeurs) mais je ne vois vraiment pas en quoi ca sécurise... J'imagine que la clé est envoyé au client qui se connecte sur le site, et que celui ci fournit la clé dans ses appels ajax. Qu'est ce qui empeche un site tierce de loader la page, de récupérer la clé, et d'envoyer à son tour à ses clients du code contenant cette clé et leur permettant donc d'utiliser l'api fb ?
Pour fb encore ca doit etre possible de parer au pb puisque les utilisateurs sont identifiés...
Mais dans mon cas je voudrais restreindre l'accès à mon api aux seuls utilisateurs de mon site sans les obliger à se créer un pseudo/password.
Auriez vous une idée ?
J'en profite pour vous remercier, je viens sur le forum quasi tous les jours et c'est top. C'est ma première question :)
Je cherche à reserver l'accès à certains flux xml appelés depuis le site que je développe aux utilisateurs du meme site. Je voudrais donc que seuls les utilisateurs de mon site puissent accèder à ces pages.
En d'autres termes je crée une API avec un ensemble de web services mais je voudrais que mon site soit la seule interface ayant accès à cette API.
J'ai cru comprendre que des sites comme facebook utilise une clé (puisqu'ils distribuent également des clés développeurs) mais je ne vois vraiment pas en quoi ca sécurise... J'imagine que la clé est envoyé au client qui se connecte sur le site, et que celui ci fournit la clé dans ses appels ajax. Qu'est ce qui empeche un site tierce de loader la page, de récupérer la clé, et d'envoyer à son tour à ses clients du code contenant cette clé et leur permettant donc d'utiliser l'api fb ?
Pour fb encore ca doit etre possible de parer au pb puisque les utilisateurs sont identifiés...
Mais dans mon cas je voudrais restreindre l'accès à mon api aux seuls utilisateurs de mon site sans les obliger à se créer un pseudo/password.
Auriez vous une idée ?
J'en profite pour vous remercier, je viens sur le forum quasi tous les jours et c'est top. C'est ma première question :)
A voir également:
- Appel ajax réservé au site lui même
- Site de telechargement - Accueil - Outils
- Site comme coco - Accueil - Réseaux sociaux
- Quel site remplace coco - Accueil - Réseaux sociaux
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Site x - Guide
10 réponses
Salut,j'ai pas tout bien pigé,mais si tu ne veux pas que tu utilisateurs se log,et que tu veux leur empecher l'accès à certaine page,tu n'as cas toi te créer un accès pour avoir accès à ces pages.Après j'ai pas compris si tu veux limiter pour certain utilisateurs ou autres.Si c'est le cas tu dois pouvoir te débrouiller en récuperant les ip.
J'espere ne pas etre trop à côté de ta question
J'espere ne pas etre trop à côté de ta question
Merci. En fait il y a des pages qui fournissent des informations au format XML. Ces pages sont requetées (en javascript AJAX) depuis la page d'accueil de mon site. Mais elles pourraient très bien etre requetées depuis la page d'un autre site. Ce que je voudrais empêcher sans savoir comment faire... ?
tu peux vérifier le $_SERVER['HTTP_REFERER'] pour voir d'où viens la requête =)
et bloquer si ça ne fait pas parti de la liste des page/domaine autorisé par ton script
et bloquer si ça ne fait pas parti de la liste des page/domaine autorisé par ton script
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
avec ie et firefox ça marche
les autres je ne sais pas ....
mais a priori sur la plupart ça marche
tu as qu'a faire un log qui note les $_SERVER['HTTP_USER_AGENT'] de chaque personne qui n'a pas de $_SERVER['HTTP_REFERER']
comme ça tu saura quels navigateurs n'ont pas ça
les autres je ne sais pas ....
mais a priori sur la plupart ça marche
tu as qu'a faire un log qui note les $_SERVER['HTTP_USER_AGENT'] de chaque personne qui n'a pas de $_SERVER['HTTP_REFERER']
comme ça tu saura quels navigateurs n'ont pas ça
tu peux faire des sessions sur ton site, sans authentification bien sur, mais avec une variable de session
$_SESSION['toto']='moi';
et dans ton script php appelé par Ajax tu verifie aussi la session et la variable
$_SESSION['toto']=='moi';
$_SESSION['toto']='moi';
et dans ton script php appelé par Ajax tu verifie aussi la session et la variable
$_SESSION['toto']=='moi';
oki merci beaucoup, mais de toutes facons ces techniques peuvent facilement etre contournees non ?
Par exemple, quelqu'un fait un site tierse, il place sur sa page d'accueil à lui un javascript qui ajax mon site à moi et affiche les infos de mon utilisateur à moi sur la page de son site à lui...
enfin bref, je ne vois pas de moyens de sécuriser efficacement un service web. Pourtant c'est bizarre pke par exemple qd facebook n'avait pas d'API, il était réputé "impossible", vraiment "impossible" de créer une appli qui demanderait au client son login/pass fb et qui aurait récupéré du contenu sur son compte...
non ?
Par exemple, quelqu'un fait un site tierse, il place sur sa page d'accueil à lui un javascript qui ajax mon site à moi et affiche les infos de mon utilisateur à moi sur la page de son site à lui...
enfin bref, je ne vois pas de moyens de sécuriser efficacement un service web. Pourtant c'est bizarre pke par exemple qd facebook n'avait pas d'API, il était réputé "impossible", vraiment "impossible" de créer une appli qui demanderait au client son login/pass fb et qui aurait récupéré du contenu sur son compte...
non ?
Ok oui mais ca reste une info envoyée par le client, donc non sécurisée ? Ca se trouve il fait la requete depuis flash ou je ne sais d'ou et le programmeur hacker arrive à produire du code qui modifie le referer chez son client quand celui ci inetrroge mon service ?
Si en js et en flash on ne peut pas modifier le referer alors je pense que c'est déjà une réponse relativement solide.
Merci beaucoup.
Si en js et en flash on ne peut pas modifier le referer alors je pense que c'est déjà une réponse relativement solide.
Merci beaucoup.