Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    Utente di HTML.it
    Registrato dal
    Nov 2020
    Messaggi
    9
    grazie a entrambi!!

    Approfondirò sicuramente il tema plugin, mi incuriosiscono e penso che personalizzare almeno graficamente una pagina già esistente può essere molto utile! Sperò che si possa utilizzare js o ajax o php che sono i linguaggi con cui ho già realizzato diverse cosette.

    riguardo il cross-domain, nel normale utilizzo, una volta aperta la pagina di login questa non viene scaricata sul mio pc dal browser? Cioè gira lato client e quindi le richieste, non partono dal mio pc? Come fanno a non essere cross-domain! ?

  2. #12
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,395
    Quote Originariamente inviata da toreg Visualizza il messaggio
    ...
    riguardo il cross-domain, nel normale utilizzo, una volta aperta la pagina di login questa non viene scaricata sul mio pc dal browser? Cioè gira lato client e quindi le richieste, non partono dal mio pc? Come fanno a non essere cross-domain! ?

    Si, le pagine vengono elaborate nel browser del client, certo... e il browser fa il suo lavoro e non ti permette di utilizzare al suo interno le cose che per sicurezza non possono essere fatte. Ma non sono protezioni del server, sono sistemi per proteggere l'utente, per questo all'esterno del browser puoi fare tranquillamente le chiamate.
    Quindi per rispondere alla tua domanda: si, le richieste partono dal browser del tuo pc che sa che la pagina l'ha scaricata dal quel dominio, quindi sa che non sono cross-domain. Nello stesso modo ad esempio sa se la stessa pagina l'hai scaricata fisicamente sul desktop e fatta partire dal browser del tuo pc (tramite path sul computer intendo) questa risulta cross-domain in questo caso.
    Per quello se vuoi riuscire devi farlo fuori dal browser, ad esempio un plugin non credo tenga conto delle regole del browser seppure gira tramite esso. Poi magari potrai pure usare js e ajax, ma non direttamente nel browser.

  3. #13
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,220
    Poi magari potrai pure usare js e ajax, ma non direttamente nel browser.
    concordo riguardo l'impossibilità di eseguire normalmente chiamate ajax cross-domain/cross-origin ma posso usare comunque una estensione installata nel browser per far girare un mio script direttamente sulla pagina di terzi, dove sta il form; a quel punto lo script può compilare il form in automatico e forzare il submit; in questo caso non ci sono restrizioni che impediscano di farlo, perché non sto facendo alcuna richiesta cross-origin e non sto commettendo alcuna infrazioni riguardo la sicurezza.

    L'unica questione da considerare è il modo con cui posso recuperare i dati che voglio usare per compilare il form.

    Escludendo chiamate cross-domain/cross-origin potrei però usare un input file con cui posso scegliere (manualmente) un file locale (creato precedentemente da me con qualche opportuno sistema) che sarà quindi caricato sulla pagina e analizzato dallo script.

    Il file potrebbe essere magari un file testuale opportunamente strutturato (xml, json, csv, quelchevuoi) o anche un file excel, per il quale lo script si occuperà di eseguirne il parsing, recuperarne i dati e sputarli nei campi del form prima di forzarne il submit.

    Ora, non ho idea dell'entità di dati che devono essere inseriti nel/nei form, e non so se si faccia prima a compilare i form a mano o tramite script, ma questa potrebbe essere una soluzione per ciò che hai chiesto. Certo richiede sempre l'intervento dell'utente per selezionare il/i file, però se la quantità di dati è rilevante, lo script potrebbe appunto sveltire il procedimento di compilazione e invio.

    Se poi è necessario compilare più form in successione, si potrebbe pensare magari di realizzare il file in modo che contenga la totalità dei dati per i vari form; a quel punto basterebbe un solo primo caricamento, quindi lo script potrebbe procedere compilando il primo form ed eseguendo il submit, dopodiché il resto dei dati potrebbe essere tenuto in memoria su localStorage per cui, all'apertura del successivo form, questo potrebbe essere compilato automaticamente recuperando di volta in volta i dati utili da localStorage. Anche in questo caso non c'è alcuna restrizione.

    Poi è chiaro che l'intero sistema andrebbe eventualmente studiato a dovere secondo la situazione reale, come già detto.


    Riepilogando, per rispondere alla tua richiesta:
    E' possibile interagire con una pagina web, non da me gestita, tramite degli script?
    ...
    cioe' compilare e inviare i form tramite degli script, non essendoci delle API native e' possibile farlo?
    Si, a patto di non compiere azioni cross-origin non consentite, se lo fai su un regolare browser.

    i dati potrei prenderli da un database mysql da me realizzato o da un foglio excel..
    Non puoi recuperare i dati con una richiesta da un sito di terzi ad una tua pagina perché appunto sarebbe una richiesta non consentita, ma non dovrebbero esserci problemi se li si carica tramite un regolare elemento input di tipo file.

    Quindi degli script in js o php non possono farlo?!
    Il php potresti usarlo per preparare i file dei dati, se questo ti viene più comodo, ma non puoi richiamare direttamente quel php da una pagina non tua. Il JavaScript può invece girare tranquillamente per manipolare i dati che gli dai in pasto e gli elementi della pagina non tua, ma non può eseguire richieste cross-origin perché saranno appunto bloccate dalle regole di sicurezza del browser stesso.

    Personalmente non ho altro da aggiungere, valuta tu se vuoi provare a realizzare qualcosa.

    Buon proseguimento
    Prima di postare considera che tra i link utili puoi trovare il 75% delle risposte alle tue domande; il 20% tra i post del forum; il 15% sul web. Ti resta... humm spè
    Le cattive domande sono quelle che non meritano risposta, le buone domande sono quelle che non hanno risposta
    L'Itailano non e nu'opnioine. E' improntate uslaro correattemtne sul froum. Garize!

    "Mi son documentato"

  4. #14
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,395
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    ...Il php potresti usarlo per preparare i file dei dati, se questo ti viene più comodo, ma non puoi richiamare direttamente quel php da una pagina non tua. Il JavaScript può invece girare tranquillamente per manipolare i dati che gli dai in pasto e gli elementi della pagina non tua, ma non può eseguire richieste cross-origin perché saranno appunto bloccate dalle regole di sicurezza del browser stesso...

    Buongiorno Killer

    Non ne sono certo in quanto non conosco bene PHP (dovrebbe comunque avere li strumenti per fare chiamate esterne), ma se usa il server il problema non si pone, infatti può fare tutte le chiamate con autenticazione che vuole. A quel punto il client invia una richiesta al server (il proprio server) contenente i valori da inviare al form del dominio in questione, da PHP sul proprio server ricevi i valori e fai una richiesta di login al server esterno, una volta ottenuto l'accesso, sempre tramite PHP (al client ancora non ha risposto) dovrebbe scaricare la pagina del form e recuperare il token, infine può inoltrare la richiesta all'indirizzo del form allegando il token e i valori per compilare i dati. Una volta fatto tutto può inviare la risposta del server in questione al client che aveva richiesto la pagina tramite il proprio server.

    EDIT:
    Se poi è necessario far vedere i dati del form al client prima di inviare il form (anche se dovrebbe trattarsi di automazione, quindi non dovrebbe manco esserci un utente client), allora lo si può fare in due chiamate:
    1) chiama il server (con nome utente e password se non memorizzati nel server); effettua il login e recupera il form con il token
    2) restituisce la copia della pagina al client ma facendo puntare il form al proprio server, il client compila i form e li spedisce al proprio server che si occuperà di impostare la chiamata al server esterno tramite le credenziali recuperate in precedenza, infine restituisce copia della risposta.
    Ultima modifica di U235; 29-12-2021 a 12:44

  5. #15
    Utente di HTML.it
    Registrato dal
    Nov 2020
    Messaggi
    9
    .
    Ultima modifica di toreg; 10-01-2022 a 21:29

  6. #16
    Utente di HTML.it
    Registrato dal
    Nov 2020
    Messaggi
    9
    Quote Originariamente inviata da U235 Visualizza il messaggio
    Si, le pagine vengono elaborate nel browser del client, certo... e il browser fa il suo lavoro e non ti permette di utilizzare al suo interno le cose che per sicurezza non possono essere fatte. Ma non sono protezioni del server, sono sistemi per proteggere l'utente, per questo all'esterno del browser puoi fare tranquillamente le chiamate.
    Quindi per rispondere alla tua domanda: si, le richieste partono dal browser del tuo pc che sa che la pagina l'ha scaricata dal quel dominio, quindi sa che non sono cross-domain. Nello stesso modo ad esempio sa se la stessa pagina l'hai scaricata fisicamente sul desktop e fatta partire dal browser del tuo pc (tramite path sul computer intendo) questa risulta cross-domain in questo caso.
    Per quello se vuoi riuscire devi farlo fuori dal browser, ad esempio un plugin non credo tenga conto delle regole del browser seppure gira tramite esso. Poi magari potrai pure usare js e ajax, ma non direttamente nel browser.
    ok più o meno ho capito il meccanismo..
    Probabilemnte con ogni richiesta si invia anche un token, un codice o come si chiama che è legato al caricamento di quella specifica pagina e ne valida le richieste successive.

    Farlo al di fuori del browser, cosa che volevo fare inizialmente, non è semplice!

  7. #17
    Utente di HTML.it
    Registrato dal
    Nov 2020
    Messaggi
    9
    Volevo cmq ringraziare tutti i partecipanti che mi hanno dedicato del tempo..

    L'iniezione di js tramite i plugin � stata una bella scoperta!! Ho gi� in mente diverse personalizzazioni di portali in abbonamento pagati profumatamente che fanno piet�! A mio avviso naturalmente...

    Per quanto riguarda la mia richiesta principale, sempre con plugin, ho fatto delle prove caricando direttamente in un array multiplo i valori da inserire nei form e tramite un ciclo for ho lanciato un submit per ogni "inserimento" e funziona alla grande!

    Confermo che facendo richieste esterne ho il problema del cross origin,
    avevo previsto un log degli errori ricevuti in risposta al submit, richiamando uno script php esterno, a quel punto si bloccava tutto!

    E' un p� macchinoso la preparazione dello script di volta in volta ma � un buon inizio!

  8. #18
    Utente di HTML.it
    Registrato dal
    Nov 2020
    Messaggi
    9
    Quote Originariamente inviata da U235 Visualizza il messaggio
    da PHP sul proprio server ricevi i valori e fai una richiesta di login al server esterno, una volta ottenuto l'accesso, sempre tramite PHP (al client ancora non ha risposto) dovrebbe scaricare la pagina del form e recuperare il token, infine può inoltrare la richiesta all'indirizzo del form allegando il token e i valori per compilare i dati. Una volta fatto tutto può inviare la risposta del server in questione al client che aveva richiesto la pagina tramite il proprio server.
    tradotto?

    ho provato a "clonare" una richiesta di login tramite curl inviano il token ma ho il problema del cross origin!
    In uno dei primi messaggi ho incollato gli header della richiesta.

    Quando dite "con richieste extra browser dovrebbe bypassare il cross origin" cosa si intende? Tramite riga di comando in curl non è extra browser?

  9. #19
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,395
    Cerco di spiegarmi ancora:


    Partiamo da quello che ho capito, quindi tu vuoi automatizzare l'invio di dati che richiedono un autenticazione. Vorresti farlo da una tua pagina web (su un tuo dominio o in localhost, comunque da ora: b.com) tramite chiamate Ajax verso il dominio del servizio (diciamo a.com).
    Se a.com non permette le chiamate cross-origin il browser non ti permetterà di effettuare richieste Ajax dalla pagina in b.com verso a.com, per cui non potrai fare richieste in questo senso dal browser.
    Se a.com permette le chiamate cross-domain non è detto che permetta anche l'uso delle credenziali con esse (o solo richieste GET ecc.).
    Quindi diciamo che a.com non permette nulla che non sia dal dominio di appartenenza, a questo punto le richieste dovrai farle da altro software che non sia un browser(serio).
    Curl non è un browser, quindi non dovrebbe avere il problema “CORS”, ma ci sono anche opzioni in esso che ti consentono di emulare il comportamento del browser, quindi occhio a che opzioni usi.
    Detto ciò poniamo che fai le richieste “a mano” (o che so tramite c# o *PROBABILMENTE* PHP), quindi da quel che posso pensare devi prima richiedere la pagina di login(tramite richiesta http), dalla risposta prendere il cookie “PHPSESSID” ed inserirlo (sempre come cookie) nella richiesta successiva di login insieme alle credenziali. A questo punto a.com ti dovrebbe inviare il token (come la risposta http che hai postato, e un nuovo valore PHPSESSID probabilmente). Ora dovresti poter fare una richiesta (un invio) contenente i tuoi dati da “uplodare” allegando sempre il cookie “PHPSESSID” e il token alla pagina preposta per raccogliere i dati, diversamente controlla se richiedendo il form da compilare non dia qualche altra intestazione da mandare nel POST o che non modifichi qualcosa delle info che hai. Inoltre ti consiglio di controllare anche che non richieda il referer, in quel caso probabilmente dovresti mettere la pagina dalla quale teoricamente dovresti provenire (es: login e/o la pagina che contiene il form che raccoglie i dati).
    Ultima modifica di U235; 11-01-2022 a 01:57

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2022 vBulletin Solutions, Inc. All rights reserved.