9

Sto sviluppando un'estensione Chrome/Chromium che leggerà i voti scolastici dal sistema scolastico con i voti. Il problema è che il sito non ricorda l'utente registrato. Per questo motivo, non posso usare AJAX.Accedi al sito Web con l'estensione chrome e ottieni i dati da esso

Solo se sono registrato su quella pagina in un'altra scheda. Ma voglio accedere a quella pagina in background e automaticamente. La soluzione potrebbe essere forse tag iframe, ma Chrome/Chromium non mi consente di leggere e manipolare contenuti iframe. C'è qualche soluzione su come manipolare nella pagina come utente registrato? Grazie

risposta

9

È possibile emulare il modulo di invio tramite javascript da una pagina di sfondo. In primo luogo è necessario controllare attentamente quali dati vengono inviati tramite il form di login e al quale URL (forma potrebbe essere modificato con javascript prima di inviare quindi è necessario sapere che cosa realmente viene inviato, non solo ciò che è in <form> elemento). È possibile utilizzare la console di Chrome per cose semplici, se non è sufficiente, allora non v'è Tamper Data plugin per Firefox, e per l'ispezione del traffico Hardcore è possibile utilizzare Wireshark analizzatore.

Poi, in una pagina di sfondo (sto usando jQuery qui):

$.ajax({ 
    url: "https://login_form.html", 
    type: "GET", 
    dataType: "html", 
    success: function() { 
     $.ajax({ 
      url: "https://login_form_submits_to.html", 
      type: "POST", 
      data: { 
        "username": "username", 
        "password": "password", 
        "extra_field": "value" 
      }, 
      dataType: "html", 
      success: function(data) { 
        //now you can parse your report screen 
      } 
     }); 
    } 
}); 

cosa buona è che Chrome persiste sessione e cookie, quindi è come login manualmente (se ora apre il sito in browser dovresti essere loggato).

+2

Riesco a vedere che sono in ritardo con questa discussione, ma volevo solo chiedere se ci fossero implicazioni di sicurezza nell'inviare i dati di accesso in questo modo. –

0

ne dite di usare cURL per accedere in modo invisibile all'utente nel sistema, e quindi restituire i risultati da una chiamata JSONP?

+1

Sì, sarebbe buona idea, ma come posso correre Curl da estensione? –

+0

Configurare una chiamata AJAX su uno script sul lato server? – BenM