Tout d'abord, s'il y a un vrai moyen officiel d'avoir flash/flex NetConnection
s usurper l'état de session/cookie de la page Web environnante, de sorte que si l'utilisateur est déjà connecté , ils n'ont pas besoin de fournir des identifiants à nouveau juste pour établir une connexion AMF, s'il vous plaît arrêtez-moi maintenant et postez la réponse officielle. Sauf ce que je suppose, il n'y a pas, comme je l'ai cherché et il semble n'existe pas. J'ai concocté un moyen de le faire, mais je voudrais savoir si c'est sécurisé.Flash + pyAMF + cookie session Django sécurité
- Accès à une enveloppe-page pour un objet flash sera toujours aller pour obtenir https en raison de django middleware
- Lorsque la vue de la page est chargée dans Django, il crée un objet « alias de session » avec une clé unique les points à la session en cours en jeu (où quelqu'un ostensiblement connecté)
- ce modèle d'alias de session est enregistrée, et que la clé est placée dans un cookie dont la clé est une autre chaîne aléatoire, appelez-randomcookie
- ce randomcookie nom de la clé est passé comme une variable de contexte et écrit dans le html comme un flashvar au swf
- Le swf est également chargé uniquement via https
- L'application flash utilise
ExternalInterface
pour appeler java pour saisir la valeur à cet endroit de randomcookie, et supprime également le cookie - Il crée ensuite un
NetConnection
à un emplacement https serveur sécurisé, En passant ce randomcookie comme argument (données, pas dans l'url) à un rpc login-using-cookie - Au niveau de la passerelle, pyamf recherche l'alias de session et obtient la session vers laquelle il pointe, et se connecte à l'utilisateur sur cela (et supprime l'alias, donc il ne peut pas être réutilisé)
- (Et la demande de passerelle pourrait également définir le cookie de session et session.session_key à la session connue ID de l'ion, mais je pourrais le laisser faire une toute nouvelle clé de session ... Je suppose que cela devrait affecter la réponse correctement afin qu'il contienne la clé de session correcte)
- À ce stade, les valeurs de cookie renvoyées sur le côté flash doit rester sur le
NetConnection
afin que d'autres appels soient authentifiés (si une connexion est authentifiée en utilisant un nom d'utilisateur et un mot de passe normalement, cela fonctionne, donc je pense que c'est une valeur sûre, le test le prouvera ou le réfutera)
Alors, est-ce dangereux, ou cela fonctionnera-t-il correctement? Pour autant que je sache, étant donné que la page html est garantie sur SSL, les données de clé et de cookie doivent être cryptées et ne peuvent pas être volées. Ensuite, les informations qui s'y trouvent devraient pouvoir être utilisées en toute sécurité en tant que mot de passe temporaire, envoyé à nouveau via SSL car la passerelle est également https. Après cela, il utilise le système pyAMF normal sur https et ne fait rien d'extraordinaire.