Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1

    Lettura saldo postepay

    Salve, sto facendo x mia comodità un programmino che mi dica in un click il mio saldo postepay...

    Ho alcuni problemi..

    vi posto il codice e vi spiego:

    Questa le funzioni che uso:

    codice:
    Public iCookie As New CookieCollection
        Public newContainer As New Net.CookieContainer
    
    Function GetPageWithCookiePOST(ByVal PageUrl As String, ByVal postato As String) As String
    
            Dim sb As New System.Text.StringBuilder
    
            Try
    
                Dim request As HttpWebRequest = WebRequest.Create(PageUrl)
    
                request.Method = "POST"
    
                request.AllowAutoRedirect = True
                request.ContentType = "application/x-www-form-urlencoded"
    
                Dim encoding As New System.Text.ASCIIEncoding
    
                Dim arByte As Byte() = encoding.GetBytes(postato)
    
                request.ContentLength = arByte.Length
    
                Dim newStream As IO.Stream = request.GetRequestStream
    
                newStream.Write(arByte, 0, arByte.Length)
    
                newStream.Close()
    
    
    
                newContainer.Add(iCookie)
                request.CookieContainer = newContainer
    
                Dim response As HttpWebResponse = request.GetResponse()
    
                For Each rCookie As Cookie In CType(response, Net.HttpWebResponse).Cookies
    
                    Dim Found As Boolean = False
    
    
                    For Each pCookie As Cookie In iCookie
    
                        If pCookie.Name = rCookie.Name Then
    
                            pCookie.Value = rCookie.Value
    
                            Found = True
    
                            Exit For
                        End If
    
                    Next
    
                    If Not Found Then
    
                        iCookie.Add(rCookie)
    
                    End If
    
                Next
    
                Using reader As StreamReader = New StreamReader(response.GetResponseStream())
    
                    sb.Append(reader.ReadToEnd)
    
                End Using
    
                Return sb.ToString
    
            Catch ex As Exception
    
                Return ""
    
            Finally
    
                sb = Nothing
    
            End Try
        End Function
    
    
    Function GetPageWithCookie(ByVal PageUrl As String) As String
    
            Dim sb As New System.Text.StringBuilder
    
            Try
    
                Dim request As HttpWebRequest = WebRequest.Create(PageUrl)
    
                request.AllowAutoRedirect = True
    
                newContainer.Add(iCookie)
                request.CookieContainer = newContainer
    
                Dim response As HttpWebResponse = request.GetResponse()
    
                For Each rCookie As Cookie In CType(response, Net.HttpWebResponse).Cookies
    
                    Dim Found As Boolean = False
    
    
                    For Each pCookie As Cookie In iCookie
    
                        If pCookie.Name = rCookie.Name Then
    
                            pCookie.Value = rCookie.Value
    
                            Found = True
    
                            Exit For
                        End If
    
                    Next
    
                    If Not Found Then
    
                        iCookie.Add(rCookie)
    
                    End If
    
                Next
    
                Using reader As StreamReader = New StreamReader(response.GetResponseStream())
    
                    sb.Append(reader.ReadToEnd)
    
                End Using
    
                Return sb.ToString
    
            Catch ex As Exception
    
                Return ""
    
            Finally
    
                sb = Nothing
    
            End Try
        End Function
    Ora io eseguo queste richieste e riesco a loggarmi:

    codice:
     
    Dim p1 As String = GetPageWithCookiePOST("https://bancopostaonline.poste.it/bpol/CARTEPRE/Logon.fcc", "USER=" & Web.HttpUtility.UrlEncode("XXXXXXXX", System.Text.Encoding.Default) & "&Password=" & Web.HttpUtility.UrlEncode("XXXXXXX", System.Text.Encoding.Default) & "&btnSubmit=Invia&target=" & Web.HttpUtility.UrlEncode("/bpol/cartepre/RedirectionGateway.ashx?type=SMACCESS", System.Text.Encoding.Default) & "&device_id=" & Web.HttpUtility.UrlEncode("[[[INACCESSIBLE]]]", System.Text.Encoding.Default))
    
    
    Dim p4 As String = GetPageWithCookie("https://bancopostaonline.poste.it/bpol/cartepre/servizi/cartapostepay/cartapostepay.aspx?pnlstart=listamovimenti")
    Per inviare il codice della mia postepay uso questo codice:

    codice:
    Dim vs As Match = Regex.Match(p4, "<input type=" & virgolette & "hidden" & virgolette & " name=" & virgolette & "__VIEWSTATE" & virgolette & "[^>]+", RegexOptions.IgnoreCase)
            Dim valorevs As Match = Regex.Match(vs.Groups.Item(0).Value, "value=" & virgolette & "([^" & virgolette & "]+)", RegexOptions.IgnoreCase)
            Dim valVS As String = valorevs.Groups.Item(1).Value
    
    
    
            Dim p5 As String = GetPageWithCookiePOST("https://bancopostaonline.poste.it/bpol/cartepre/servizi/cartapostepay/cartapostepay.aspx?pnlstart=listamovimenti", Web.HttpUtility.UrlEncode("CartaPostePaySelezionaCarta1:btnEsegui", System.Text.Encoding.Default) & "=Esegui&" & Web.HttpUtility.UrlEncode("CartaPostePaySelezionaCarta1:txtNrCartaPre", System.Text.Encoding.Default) & "=XXXXXXXXXXXX&" & Web.HttpUtility.UrlEncode("CartaPostePaySelezionaCarta1:cmbLista", System.Text.Encoding.Default) & "=40&" & Web.HttpUtility.UrlEncode("__VIEWSTATE=", System.Text.Encoding.Default) & Web.HttpUtility.UrlEncode(valVS, System.Text.Encoding.Default))
    Ovvero dalla richiesta p4 ottengo il __VIEWSTATE e lo invio insieme al resto, però quello che ottengo è il sorgente della pagina di login anziche quello della lista movimenti.

    Soluzioni?

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465

    Moderazione

    Il linguaggio va indicato anche nel titolo. Qui l'ho aggiunto io.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Ma una curiosita il servizio postepay richiede le credenziali tramite querystring ???.

    Ti dico questo perche io (almeno su postepay.it) le credenziali tramite query string non me le fa mettere (e meno male )

  4. #4
    @Alka scusami mi è sfuggito.

    @Cassano non è in querystring, è una richiesta post infatti...

    Qualcuno può aiutarmi? Vi ho postato tutto il codice

  5. #5
    Piccola precisazione, ho provato ora con postepay.it anziché poste.it...

    Queste le richieste:

    codice:
    Dim p1 As String = GetPageWithCookiePOST("https://postepay.poste.it/servizi_online/app_login/login.fcc", "USER=" & Web.HttpUtility.UrlEncode("XXXXXXXXXXXX", System.Text.Encoding.Default) & "&PASSWORD=" & Web.HttpUtility.UrlEncode("XXXXXXXXXXXXX", System.Text.Encoding.Default) & "&bottone=accedi&target=" & Web.HttpUtility.UrlEncode("/portalppay/startBenvenutoAction.do", System.Text.Encoding.Default) & "&device_id=" & Web.HttpUtility.UrlEncode("[[[INACCESSIBLE]]]", System.Text.Encoding.Default) & "&smquerydata=&smauthreason=&smagentname=&postpreservationdata=")
            'Const virgolette = """"
    
            Dim p2 As String = GetPageWithCookiePOST("https://postepay.poste.it/portalppay/viewListaMovimentiAction.do", "numeroMovimenti=40&selPan=XXXXXXXXXXXX&prosegui=esegui&numeroCarta=&dataMM=&dataAA=&cvv2=", "https://postepay.poste.it/portalppay/startListaMovimentiAction.do")

    Il risultato è che non mi effettua nemmeno il login o se lo fa la seconda richiesta me lo richiede...

  6. #6
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Scusami ma io continuo a non capire, come fai a sapere che quello sia l'url giusto e sopratutto i parametri in querystring siano quelli ???.

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465

    Moderazione

    Originariamente inviato da cassano
    Scusami ma io continuo a non capire, come fai a sapere che quello sia l'url giusto e sopratutto i parametri in querystring siano quelli ???.
    Non è nemmeno da escludere che il sito attui delle verifiche proprio per assicurare che il servizio non venga utilizzato da applicativi o siti esterni.

    E' stata fatta una verifica dei termini di utilizzo del sito in questo senso?

    Altrimenti, stiamo affrontando un argomento non del tutto legale...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    @Cassano: basta guardare gli url del form, le richieste POST effettuate (con firefox 3.6 usavo livehttpheaders e riuscivo tramite php a tirar fuori la mia bolletta della mia scheda wind nonostante i sistemi di protezione che sicuramente c'erano...) ora con firefox 4 non so più come vedere e mi baso sui campi input nel form che verranno inviati.

    @alka: beh il conto è il mio, non sto facendo chissà quale sistema di hackeraggio, voglio un semplice applicativo che all'apertura mi dica: hai XXX euro nella carta, anziché andarmi a loggare, mettere il numero ecc... Chissà magari posso fissarmelo sul desktop a mò di widget...
    E poi impostando user-agent, referer, ed altro non c'è sistema di sicurezza che tenga, testato con php... in vb.net il problema è che sembra lasciare i cookie indietro ognitanto boh, nn so se sbaglio le richieste o la gestione dei cookie nel codice..

  9. #9
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    GRande non sapevo si potesse fare anche cosi, quindi mi basta analizzare l'html della pagine cercare i bottone login e password ed inviarli tramite post !!??

    Grazie !!!.

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Originariamente inviato da StefanoV
    @alka: beh il conto è il mio, non sto facendo chissà quale sistema di hackeraggio, voglio un semplice applicativo che all'apertura mi dica: hai XXX euro nella carta, anziché andarmi a loggare, mettere il numero ecc... Chissà magari posso fissarmelo sul desktop a mò di widget...
    E poi impostando user-agent, referer, ed altro non c'è sistema di sicurezza che tenga, testato con php... in vb.net il problema è che sembra lasciare i cookie indietro ognitanto boh, nn so se sbaglio le richieste o la gestione dei cookie nel codice..
    Il problema non è il proprietario del conto in questione: il problema è il tipo di utilizzo e accesso che si fa al servizio.

    Il fatto che tecnicamente sia possibile fare quanto hai realizzato non significa che il provider del servizio lo consenta nei termini d'uso, e in caso negativo potrebbe anche chiuderti il conto qualora individuasse una violazione dei termini d'uso.

    Non si tratta di una questione tecnica, ma legale.

    Ad ogni modo, il mio era un suggerimento a tua tutela personale, nulla di che.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.