Appel ajax réservé au site lui même

Fermé
Nicoconut - 29 avril 2009 à 16:32
 Nicoconut - 23 juin 2009 à 14:58
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 :)
A voir également:

10 réponses

up! Ya qq1?
0
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
0
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
0
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... ?
0
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
19 juin 2009 à 12:30
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci beaucoup. Mais le referer ne fonctionne pas avec certains navigateurs non ?
0
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
19 juin 2009 à 15:37
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
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 juin 2009 à 15:57
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';
0
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 ?
0
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
19 juin 2009 à 16:44
ben avec http_referer tu vois d'ou la requète vien
s'il ajax ton site a partir du sien tu vois l'adresse de son site dans le http_referer
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 juin 2009 à 17:00
comment veux tu contourner les sessions php ?

creuses un peu la solution que je te propose
0
Alain,

oui merci pour ta réponse.
Mais je me dis que si le développeur hacker place sur sa page le script qui :
ajax ma page d'index (et donc ouvre une session)
puis ajax mes services web (donc accède à mes services web)

il aura contourné la sécurité non ?
0
Alain,

Qu'en penses tu ? Un dernier petit up avant que je close le sujet... Il ne me semble pas que ta solution fonctionne. Dis moi si je me trompe.

Merci en tout cas.

Nicolas
0
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.
0