Desactiver la sécurité Cross Frame Scripting

cs_abys Messages postés 77 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 29 juillet 2010 - 12 juil. 2005 à 11:54
cs_abys Messages postés 77 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 29 juillet 2010 - 29 juil. 2010 à 19:29
salut,
je cherche comment desactiver la secutité de internet explorer "Cross Frame/Domain Scripting"
le but est de pouvoir acceder aux DOM de l objet Webbrowser dont la page comporte des frames avec differents domaine. (si il y a different domaines, la securité s active et rend inaccessible l'objet DOM du domaine en question)
il existe des softs qui arrive a acceder a ce DOM ex: HTML Quick Edit Bar : http://www.winutility.com
mais je ne sais pas comment ils font
alors si quelqu un a une idee

g une solution mais qui est "Trop Brutale" en changeant le domaine et en desactivant le chargement de la page, (si on change le domaine, le webbrowser va recherche la page demandée)

g essayé de desactiver la securité dans les parametres de securité de ie, mais ca ne marche toujours pas "Access Denied"

merci

5 réponses

chocoseb Messages postés 2 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 29 juillet 2010
27 juil. 2010 à 22:31
Je sais que ce post est vieux, mais si tu as trouvé un moyen de faire cela, je suis à la recherche de quelque chose de similaire. Malheuresement, il ne semble pas avoir de workaround.
0
cs_abys Messages postés 77 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 29 juillet 2010
29 juil. 2010 à 10:53
oui j'ai trouvé par hasard.
voici la théorie :
l'objet webbrowser déclenche à chaque chargement de page (un frame étant une page) l'évènement document_complete. donc si une page contient 1 frame, l évènement va se déclencher 2 fois.

il suffit a chaque déclenchement d'affecter une classe à l'évènement "mouse over" une classe qui gère l'accès au dom

faudrait que je regarde ma source pour plus d'infos. mais la théorie c'est ca

Abys
0
chocoseb Messages postés 2 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 29 juillet 2010
29 juil. 2010 à 18:35
Je crois que je comprend ta théorie, mais je ne vois pas très bien comment la classe peut accéder au DOM. Si tu peut me montrer un bout de code se serait sympa!

Merci
Sébastien
0
cs_abys Messages postés 77 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 29 juillet 2010
29 juil. 2010 à 19:28
Le code complet :)

'le formulaire :
Option Explicit
    Public IndexWb As Long
Private Sub Form_Load()
    wbMyBrowser.Navigate2 "http://google.fr"
End Sub

Private Sub wbMyBrowser_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
    Dim mouseOver As clsAction
    Set mouseOver = New clsAction
    mouseOver.Set_Destination pDisp, pDisp.Document, URL, IndexWb
    pDisp.Document.onmouseover = mouseOver
    IndexWb = IndexWb + 1
    Set mouseOver = Nothing
End Sub

'la class
Option Explicit
Dim oWpDisp As WebBrowser
Public WithEvents oHTMLPage As HTMLDocument
Dim sURL As Variant
Dim bInstantiated As Boolean
Dim iIndex As Long
Public Sub Class_Initialize()
    bInstantiated = False
End Sub
Public Sub Class_Terminate()
    Set oHTMLPage = Nothing
    Set oWpDisp = Nothing
End Sub

Public Sub Set_Destination(WpDisp As WebBrowser, HTMLPage As HTMLDocument, URL As Variant, Index As Long)
    Set oWpDisp = WpDisp
    Set oHTMLPage = HTMLPage
    iIndex = Index
    sURL = URL
    bInstantiated = True
End Sub

Private Function oHTMLPage_onclick() As Boolean
oHTMLPage_onclick = False
End Function

Private Function oHTMLPage_oncontextmenu() As Boolean
oHTMLPage_oncontextmenu = True
End Function

Public Sub oHTMLPage_onmouseout()
    Dim curElement As IHTMLEventObj2
    Set curElement = oHTMLPage.parentWindow.event
    If Not curElement.srcElement Is Nothing Then
        Dim Tag As IHTMLElement
        Set Tag = curElement.fromElement
        If Tag.tagName <> "FRAME" And Tag.tagName <> "FRAMESET" And Tag.tagName <> "BODY" Then
            Form1.Label1.Caption = ""    'Index & "-" & curElement.Type & " " & curElement.fromElement.nodeName & " - ox=" & curElement.offsetX & " oy=" & curElement.offsetY & " - x=" & curElement.x & " y=" & curElement.y
            Tag.Style.BorderColor = ""
            Tag.Style.backgroundColor = ""
            Tag.Style.BorderStyle = ""
            Tag.Style.BorderWidth = ""
        End If
        Set Tag = Nothing
    End If
    Set curElement = Nothing
End Sub

Public Sub oHTMLPage_onmouseover()
    Dim curElement As IHTMLEventObj2
    Set curElement = oHTMLPage.parentWindow.event
    If Not curElement.srcElement Is Nothing Then
        Dim Tag As IHTMLElement
        Set Tag = curElement.srcElement
        If Tag.tagName <> "FRAME" And Tag.tagName <> "FRAMESET" And Tag.tagName <> "BODY" Then
            Form1.Label1.Caption = iIndex & "-" & curElement.Type & " " & curElement.srcElement.nodeName & " - ox=" & curElement.offsetX & " oy=" & curElement.offsetY & " - x=" & curElement.x & " y=" & curElement.y
            Tag.Style.BorderColor = "#FF0000"
            Tag.Style.backgroundColor = "#cccccc"
            Tag.Style.BorderStyle = "solid"
            Tag.Style.BorderWidth = "1px"
        End If
        Set Tag = Nothing
    End If
    Set curElement = Nothing
End Sub



Abys
0

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

Posez votre question
cs_abys Messages postés 77 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 29 juillet 2010
29 juil. 2010 à 19:29
faut pas oublier les références et le composant webbrowser

Abys
0