Permettant HTTP iFrame à l'appel JavaScript sur HTTPS cadre parent
J'ai une page https (https://example.com/main.php) qui a un iframe avec un non-https source (http://example.com/inner.php). Les deux fichiers sont sur le même serveur un est accessible en https, et l'autre ne l'est pas. J'ai besoin de la non-https page pour être en mesure d'exécuter le code javascript sur le https main.php
page à l'aide d'un code tel que parent.myfunction()
Cependant, lorsque j'essaie ceci, j'obtiens l'erreur suivante:
Dangereux JavaScript tentative d'accès à une image avec l'URL https://example.com/main.php à partir de l'image avec l'url http://example.com/inner.php. Les domaines, les protocoles et les ports doivent correspondre.
J'ai mis document.domain = 'example.com'
sur les deux fichiers et j'ai pensé que serait-il fixer, cependant, il ne le fait pas. Est-il possible de permettre à l'image d'exécuter des scripts javascript sur l'image parent et vice-versa? Si oui, quelles en sont les implications sur la sécurité de cette?
PS: Pour ceux d'entre vous qui suggère simplement à l'aide de http ou https pour les deux pages, je suis à la recherche dans que. Cependant, en raison du processus se produisant dans l'iframe de la page, ceci peut ne pas être une option réalisable en raison de la charge du serveur de questions.
OriginalL'auteur user401833 | 2010-07-26
Vous devez vous connecter pour publier un commentaire.
Le "Même Origine" couvre le protocole"http" ou "https"), le nom d'hôte et le numéro de port. Tous ceux qui ont de match ou de vous perdre.
Si la charge de votre serveur serait vraiment touchés par avoir à appliquer le cryptage de la
<iframe>
page, alors je soupçonne que vous avez eu d'autres, beaucoup plus graves problèmes. En cette journée et l'âge, ce qui ne devrait pas être un problème. Si vous avez un massivement à fort trafic du site, alors vous devriez probablement être l'aide d'un front-end pour faire le SSL de toute façon.OriginalL'auteur Pointy
Si c'était jamais possible de faire ce que vous demandez à faire, pas de site web sécurisé SSL ne sera jamais en sécurité.
Permettez-moi de décrire le problème. Supposons qu'un utilisateur, Alice, passe pour accéder à son compte sur Paypal.com. J', Mallory, je suis entre Paypal et Alice. Comme Alice accède à Paypal, je interception de sa demande et de renvoyer une page contenant deux choses: un cadre avec des https://paypal.com, et l'un contenant une page qui prétend être"http://my.paypal.com', j'ai fabriqué moi-même. Le HTTPS image valide bien parce qu'il est en fait venu de la part de Paypal. Le HTTP cadre contient un peu de Javascript de mon appareil qui permettra d'atteindre dans le HTTPS cadre, et quand Alice rentre son mot de passe il me l'envoyer!
Donc non, il n'est pas OK pour accéder au contenu sécurisé à partir d'un contenu non sécurisé, même sur le même domaine.
Je ne pense pas que vous avez tout à fait compris ce que j'ai dit. L'attaquant retourne une page avec deux images à l'intérieur. Une trame contient la bonne foi paypal.com. L'autre contient du code javascript malveillant. Le code javascript malveillant "a été livré à partir de paypal.com" - mais vraiment, j'ai intercepté la requête et retourne le contenu que je voulais (ce qui est possible parce que ce n'est pas une connexion sécurisée). Ainsi, les deux cadres de "passer la même origine "vérifier", mais le résultat est une catastrophe.
OriginalL'auteur Borealid
Vous ne pouvez pas faire de cross-domain/croix-protocole/port d'accès avec JavaScript. Ceci est connu comme le "cross domain scripting", qui est un problème, puisque sans la sécurité, comme cela, je pourrais ouvrir GMail dans un iframe, obtenir le "u" et "p" zones de texte, et ont de connexion d'un utilisateur info comme ça.
Ce que vous mettez dans votre PS est la seule vraie solution, vous pouvez utiliser en plus de l'utilisation d'un serveur echo... ce qui serait exagéré.
OriginalL'auteur Warty