2010-10-27 3 views
0

Je me demande si quelqu'un sait une librairie javascript où je pourrais à distance se connecter à un site, puis parcourir les pages lors de la connexion.javascript/ajax question

Ceci est très facile avec la boucle de php, mais je me demande si il existe un équivalent javascript où je peux exécuter plusieurs URL distantes sous une seule session http. Fondamentalement, ce que je cherche à faire est de poster un nom d'utilisateur/mot de passe à l'un de mes sites, puis immédiatement publier d'autres commandes à une URL différente (même domaine distant) en utilisant la session authentifiée.

Je n'ai encore rien vu de tel, alors je me demande si quelqu'un peut me pointer dans la direction (si c'est possible). Peut certainement être HTML5.

Répondre

1

En raison des restrictions same origin policy dans les navigateurs, cela n'est pas possible avec javascript. Vous avez besoin d'un script côté serveur qui servira de pont entre votre site et les sites distants. Ensuite, parlez à ce script local en utilisant AJAX.

0

Il existe des techniques disponibles pour contourner la règle d'origine:

Si vous n'avez pas besoin de lire la réponse de vos appels POST, vous pouvez créer un formulaire en javascript avec une action à une URL (non limité à la même politique d'origine) comme dans cette question: How do I send a cross-domain POST request via JavaScript?

Mais cela signifie que vous ne comptez que sur les cookies de session pour la sécurité, ceci est ouvert pour XSS attacks.

Comme vous êtes le propriétaire de l'autre site de domaine, vous pouvez développer un petit service qui retourne un JSON avec les données dont vous avez besoin, et utiliser la technique JSONP, par exemple:

<script src="http://otherdomain/curl?url=page.html&callback=cb"> 
</script> 

Peut être que vous pouvez connecter avant d'utiliser la technique POST ci-dessus et l'envoi d'un jeton secret que vous réutilisez dans l'URL pour améliorer la sécurité.

Enfin, il existe un moyen d'agir/lire sur d'autres pages en utilisant un bookmarklet.
L'idée est d'injecter dans la page de l'autre domaine un script qui peut fonctionner avec tous les privilèges, et de renvoyer des informations à votre domaine.
Mais cela nécessite une action manuelle (cliquez sur un lien ou sur un signet du navigateur)