1. #1
    Avatar von rVs14
    Registriert seit
    18.11.2011
    Beiträge
    983
    Thanked 513 Times in 338 Posts

    Standard vBullentin API Problem

    Hallo,

    Ich hab ein riesen Problem, undzwar möchte ich eine DLL coden, welche alle nötigen User Infos ausliest.

    Ich bekomme folgenden Error:
    Code:
    Dein Seitenaufruf konnte aufgrund eines fehlenden Securitytokens nicht verarbeitet werden.
    
    Wenn du meinst, dass es sich dabei um einen Fehler handelt, wende dich bitte an den Administrator und beschreibe genau, was du gemacht hast, bevor diese Meldung angezeigt wurde.
    Ich hab schon mit Live HTTP Headers alles geloggt, ich sende nur irgendeinen Cookie welcher im Cookiecontainer vorhanden ist. Ansonsten wird nichts übertragen. Hatte jemand schon mal das Problem und kann mir helfen?

    Danke schon mal im Vorraus.

    PS: Ich versuche die Seite vom Benutzer(wo man Profilnachrichten etc. findet) aufzurufen.
    Geändert von rVs14 (30.07.2012 um 17:05 Uhr)

  2. #2
    Avatar von Snees
    Registriert seit
    18.11.2011
    Beiträge
    1.001
    Thanked 592 Times in 319 Posts

    Standard AW: vBullentin API Problem

    Poste mal deinen Code, Screenshot geht auch, falls du Angst hast, dass dir jemand deinen Code klaut

  3. #3
    Gelöschter Benutzer
    Gast

    Standard AW: vBullentin API Problem

    <input type="hidden" name="s" value="0729af2a08deba1d2e11982dfe0dcbaa" />

    Das ist wahrscheinlich der Securitytoken, den musst du vorher auslesen von der Startseite und dann einloggen.

    Auslesen kannst du ihn zB so:

    #<input type="hidden" name="s" value="(.*?)" />#
    Geändert von Gelöschter Benutzer (19.02.2013 um 20:20 Uhr)

  4. #4
    Avatar von rVs14
    Registriert seit
    18.11.2011
    Beiträge
    983
    Thanked 513 Times in 338 Posts

    Standard AW: vBullentin API Problem

    Ich versuche die Seite vom Benutzer(wo man Profilnachrichten etc. findet) aufzurufen.
    Den Securitytoken hab ich auch schon geregext. Jedoch weiß ich nicht wo ich ihn übertragen muss.

    Kann jemand von euch mal das loggen? Ich hab nichts gefunden.

  5. #5
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    8.066
    Thanked 9.403 Times in 3.239 Posts
    Blog Entries
    5

    Standard AW: vBullentin API Problem

    Für Profilaufrufe ist kein Security-Token nötig, das Ding wird bei Aktivitäten wie Posts übertragen um die Authentifizierung zu bestätigen.
    Bei dir fehlt es wahrscheinlich schon beim Login, poste einfach mal deinen Source.

    Zitat Zitat von Nico Beitrag anzeigen
    Poste mal deinen Code, Screenshot geht auch, falls du Angst hast, dass dir jemand deinen Code klaut
    Nein, Screenshot geht nicht.
    Wenn debuggen nötig ist werde ich auf jeden Fall nicht den Code abtippen.
    Und wegen so einem Snippet Angst vor Codeklau zu haben ist ja wohl mehr als lächerlich.


  6. #6
    Avatar von rVs14
    Registriert seit
    18.11.2011
    Beiträge
    983
    Thanked 513 Times in 338 Posts

    Standard AW: vBullentin API Problem

    PHP-Code:
    public  static CookieContainer cookies = new CookieContainer(); 
    PHP-Code:
     String username "rvs14";//user
                
    String pass "md5pw" //pw
                
    String data "vb_login_username="+username "&vb_login_password=&cookieuser=1&s=&securitytoken=guest&do=login&vb_login_md5password="+pass+"&vb_login_md5password_utf="+pass;
               
    req(data"http://u-hacks.net/login.php?do=login"); // Login
               
    String qthaupt req("""http://u-hacks.net"); //haupt
                
    Regex regex = new Regex("<a href=\"(.*?)\" >");
                
    Match match regex.Match(qthaupt);
                
    String userurl match.Groups[1].Value;
                
    String userpanelqt req(""userurl);
                
    richTextBox1.Text userpanelqt
    req Methode:
    PHP-Code:
      public static String req(String dataString url)
            {
              
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); 
                
    req.ContentType "application/x-www-form-urlencoded";
                
    req.Method "POST";
                
    req.UserAgent "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
                
    req.CookieContainer cookies;
                
    byte[] post Encoding.ASCII.GetBytes(data);
                
    req.ContentLength post.Length;
                
    Stream datastream req.GetRequestStream();
                
    datastream.Write(post0post.Length);
                
    datastream.Close();
                
    HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                
    datastream resp.GetResponseStream();
                
    StreamReader reader = new StreamReader(datastreamEncoding.UTF8);
                
    String content reader.ReadToEnd();
                return 
    content;
            } 
    Ich weiß, total unübersichtlich. Die Regex funktionieren, sind aber noch nicht perfektioniert.

  7. #7
    Avatar von Fif
    Registriert seit
    18.11.2011
    Beiträge
    240
    Thanked 179 Times in 100 Posts

    Standard AW: vBullentin API Problem

    Zitat Zitat von rVs14 Beitrag anzeigen
    PHP-Code:
    public  static CookieContainer cookies = new CookieContainer(); 
    PHP-Code:
                String data "vb_login_username="+username "&vb_login_password=&cookieuser=1&s=&securitytoken=guest&do=login&vb_login_md5password="+pass+"&vb_login_md5password_utf="+pass
    PHP-Code:
                String data "vb_login_username="+username "&vb_login_password=&cookieuser=1&s=guest&do=login&vb_login_md5password="+pass+"&vb_login_md5password_utf="+pass
    Du musst "s" als Name statt "securitytoken" benutzen.

  8. #8
    Avatar von uncopyable
    Registriert seit
    19.11.2011
    Beiträge
    282
    Thanked 235 Times in 120 Posts

    Standard AW: vBullentin API Problem

    Ich hatte mir auch mal eine Klasse für vBullentin geschrieben allerdings in vb.
    Die Klasse ist schon etwas älter heute würde ich es anders coden
    funktionieren tut es auf jeden Fall und vielleicht kannst es ja gebrauchen

    Spoiler:
    PHP-Code:
    Imports System.Net
    Imports System
    .Text
    Imports System
    .Security.Cryptography
    Imports System
    .Text.RegularExpressions
    Imports System
    .IO

    Public Class LoginSystem
        
    Private Containa As New CookieContainer
        
    Public FirstString As String Nothing
        
    Public unParsedString As String Nothing
        
    Public ParsedString As String Nothing
        
    Public OnlineUser As New List(Of String)
        Public Function 
    Login(ByVal Username As StringByVal Password As String) As User
            Dim _UserName 
    As String String.Empty
            
    Dim Warnpoints As Integer 0
            Dim Posts 
    As String String.Empty
            
    Dim UserUrl As String String.Empty
            
    Dim _UserImage As Image Nothing
            Dim valid 
    As Boolean False
            
    Try

                
    Password MD5(Password)
                
    Dim data As String "vb_login_username=" Username "&vb_login_password=&s=&do=login&vb_login_md5password=" Password "&vb_login_md5password_utf=" Password
                Dim request 
    As HttpWebRequest WebRequest.Create("http://u-hacks.net/login.php?do=login")
                
    request.Method WebRequestMethods.Http.Post
                request
    .ContentType "application/x-www-form-urlencoded"
                
    request.UserAgent "Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/10.00"
                
    request.Accept "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
                
    request.CookieContainer Containa
                request
    .CookieContainer = New CookieContainer()
                
    Containa request.CookieContainer
                request
    .ContentLength data.Length
                Dim rStream 
    As New StreamWriter(request.GetRequestStream)
                
    rStream.Write(data)
                
    rStream.Flush()
                
    rStream.Close()
                
    Dim response As HttpWebResponse request.GetResponse
                Dim resReader 
    As New StreamReader(response.GetResponseStream)
                
    Dim str As String resReader.ReadToEnd
                
    If str.Contains("Danke f�r Ihre Anmeldung, " Username ".") Or str.Contains("Danke für Ihre Anmeldung, " Username "."Then
                    _UserName 
    Username
                    valid 
    True
                
    Else
                    
    _UserName String.Empty
                    
    valid False
                End 
    If
                
    response.Close()
                
    'GetUserUrl'
                
    request WebRequest.Create("http://u-hacks.net/")
                
    request.Method WebRequestMethods.Http.Get
                request
    .ContentType "application/x-www-form-urlencoded"
                
    request.UserAgent "Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/10.00"
                
    request.Accept "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
                
    request.CookieContainer Containa
                response 
    request.GetResponse
                resReader 
    = New StreamReader(response.GetResponseStream)
                
    str resReader.ReadToEnd
                
    If str.ToString String.Empty Then
                
    Else
                    
    UserUrl GetHtmlLinks(str)(2).Replace("<a href=""""").Replace(">""").Replace("""""")
                    
    'GetOnlineUser'
                    
    Dim strRegex As String "<!-- logged-in users -->.*?<!-- end logged-in users -->"
                    
    Dim myRegexOptions As RegexOptions RegexOptions.Singleline
                    Dim myRegex 
    As New Regex(strRegexmyRegexOptions)
                    
    Dim strTargetString As String str
                    Dim myMatch 
    As Match myRegex.Match(strTargetString)
                    If 
    myMatch.Success Then
                        FirstString 
    myMatch.Value
                    End 
    If
                    
    strRegex ".</div>.*?</td>"
                    
    myRegexOptions RegexOptions.Singleline
                    myRegex 
    = New Regex(strRegexmyRegexOptions)
                    
    strTargetString FirstString
                    myMatch 
    myRegex.Match(strTargetString)
                    If 
    myMatch.Success Then
                        unParsedString 
    myMatch.Value
                    End 
    If
                    
    strRegex "([^""]+)</a>"
                    
    myRegexOptions RegexOptions.None
                    myRegex 
    = New Regex(strRegexmyRegexOptions)
                    
    strTargetString unParsedString
                    myMatch 
    myRegex.Match(strTargetString)
                    For 
    Each m As Match In myRegex.Matches(strTargetString)
                        
    Dim tmp1 As String m.Value
                        tmp1 
    tmp1.Replace("</a>""").Replace(">""").Replace("</span""")
                        
    OnlineUser.Add(tmp1)
                    
    Next
                End 
    If
                
    ' UserImages'
                
    Dim _Image As Image Nothing
                Dim tmp 
    As String UserUrl.Replace("http://u-hacks.net/members/""").Replace("/""")
                
    _Image DownloadImage("http://u-hacks.net/avatars/" tmp ".gif")
                If 
    _Image.Size = New Size(11Then
                    _Image 
    My.Resources.unknown
                    _UserImage 
    _Image
                
    Else
                    
    _UserImage _Image
                End 
    If
                
    'Posts'
                
    request WebRequest.Create(UserUrl)
                
    request.Method WebRequestMethods.Http.Get
                request
    .ContentType "application/x-www-form-urlencoded"
                
    request.UserAgent "Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/10.00"
                
    request.Accept "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
                
    request.CookieContainer Containa
                response 
    request.GetResponse
                resReader 
    = New StreamReader(response.GetResponseStream)
                
    str resReader.ReadToEnd
                
    If str.ToString String.Empty Then
                    
    Return Nothing 'ERROR'
                
    Else
                    
    'Get Posts'
                    
    Dim strRegex As String "<li><span class=""shade"">Beitr�ge:<\/span>(.+?)<\/li>"
                    
    Dim myRegexOptions As RegexOptions RegexOptions.None
                    Dim myRegex 
    As New Regex(strRegexmyRegexOptions)
                    
    Dim strTargetString As String str
                    Dim myMatch 
    As Match myRegex.Match(strTargetString)
                    If 
    myMatch.Success Then
                        Posts 
    myMatch.Groups(1).ToString
                    End 
    If

                
    End If
                Return New 
    User(_UserNameWarnpointsPosts_UserImageOnlineUservalid)
            Catch 
    As Exception
                MsgBox
    (e.Message)
            
    End Try
        
    End Function
        
        Public Function 
    DownloadImage(ByVal _URL As String) As Image
            Dim _tmpImage 
    As Image Nothing
            
    Try
                
    Dim _HttpWebRequest As System.Net.HttpWebRequest CType(System.Net.HttpWebRequest.Create(_URL), System.Net.HttpWebRequest)
                
    _HttpWebRequest.AllowWriteStreamBuffering True
                _HttpWebRequest
    .UserAgent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"
                
    _HttpWebRequest.Referer "http://www.google.com/"
                
    _HttpWebRequest.Timeout 20000
                Dim _WebResponse 
    As System.Net.WebResponse _HttpWebRequest.GetResponse()
                
    Dim _WebStream As System.IO.Stream _WebResponse.GetResponseStream()
                
    _tmpImage Image.FromStream(_WebStream)
                
    _WebResponse.Close()
                
    _WebResponse.Close()
            Catch 
    _Exception As Exception
                
    Return Nothing
            End 
    Try

            Return 
    _tmpImage
        End 
    Function


        Public Function 
    MD5(ByVal number As String) As String
            Dim ASCIIenc 
    As New ASCIIEncoding
            Dim strReturn 
    As String String.Empty
            
    Dim ByteSourceText() As Byte ASCIIenc.GetBytes(number)
            
    Dim Md5Hash As New MD5CryptoServiceProvider
            Dim ByteHash
    () As Byte Md5Hash.ComputeHash(ByteSourceText)
            For 
    Each b As Byte In ByteHash
                strReturn 
    &= b.ToString("x2")
            
    Next
            
    Return strReturn
        End 
    Function

        Private Function 
    GetHtmlLinks(html As String) As List(Of String)
            
    Dim linkPattern As String "<a href=""(.*?)"">"
            
    Dim linkMatches As MatchCollection Regex.Matches(htmllinkPatternRegexOptions.Singleline)
            
    Dim linkContents As New List(Of String)()
            For 
    Each match As Match In linkMatches
                linkContents
    .Add(match.Value)
            
    Next
            
    Return linkContents
        End 
    Function

    End Class

    Public Class 
    User

        
    Private _name As String
        
    Private _warnPoints As Integer
        
    Private _posts As String
        
    Private _success As Boolean
        
    Private _UserImage As Image
        
    Private _OnlineUser As New List(Of String)

        
    ''' <summary>
        ''' 
    Zeigt den Usernamen des Users an.
        
    ''' </summary>
        ''' 
    <returns>Username</returns>
        Public 
    ReadOnly Property Name() As String
            Get
                
    Return _name
            End Get
        End Property


        
    ''' <summary>
        ''' 
    Gibt eine Liste mit allen Usern die Online sind zurück.
        
    ''' </summary>
        ''' 
    <returns>Username</returns>
        
    ''' 
        Public Property OnlineUser() As List(Of String) 
            Get
                Return _OnlineUser
            End Get
            Set(ByVal value As List(Of String))
                _OnlineUser = value
            End Set
        End Property


        ''' 
    <summary>
        
    ''' Zeigt den Avata des Users an.
        ''' 
    </summary>
        
    ''' <returns>Username</returns>
        Public ReadOnly Property UserImage() As Image
            Get
                Return _UserImage
            End Get
        End Property

        ''' 
    <summary>
        
    ''' Zeigt die Warnpunkte des Users an.
        ''' 
    </summary>
        
    ''' <returns>Warnpoints</returns>
        Public ReadOnly Property WarnPoints() As Integer
            Get
                Return _warnPoints
            End Get
        End Property

        ''' 
    <summary>
        
    ''' Zeigt die Anzahl der Posts des Users an.
        ''' 
    </summary>
        
    ''' <returns>Posts</returns>
        Public ReadOnly Property Posts() As String
            Get
                Return _posts
            End Get
        End Property

        ''' 
    <summary>
        
    ''' Gibt an, ob der Login erfolgreich war.
        ''' 
    </summary>
        
    ''' <returns>Success</returns>
        Public ReadOnly Property Success() As Boolean
            Get
                Return _success
            End Get
        End Property

        Public Sub New()
            Me._name = String.Empty
            Me._warnPoints = 0
            Me._posts = String.Empty
            Me._success = False
        End Sub

        Public Sub New(ByVal name As String, ByVal warnpoints As Integer, ByVal posts As String, ByVal UserImage As Image, ByVal OnlineUser As List(Of String), ByVal success As Boolean)
            Me._name = name
            Me._warnPoints = warnpoints
            Me._posts = posts
            Me._success = success
            Me._UserImage = UserImage
            Me.OnlineUser = OnlineUser
        End Sub
    End Class 

  9. The Following User Says Thank You to uncopyable For This Useful Post:

    DnL (30.07.2012)

Ähnliche Themen

  1. [W-Lan] Problem!
    Von Microsoft im Forum Hardware
    Antworten: 3
    Letzter Beitrag: 22.07.2012, 13:28
  2. Skype-Problem: Problem mit dem Wiedergabegerät
    Von Scarface im Forum Audio & Video
    Antworten: 0
    Letzter Beitrag: 16.07.2012, 23:58
  3. Bf3 Problem
    Von pand0ra im Forum Battlefield
    Antworten: 3
    Letzter Beitrag: 07.05.2012, 15:35
  4. CSS Problem
    Von St0N3D im Forum Counter Strike
    Antworten: 4
    Letzter Beitrag: 21.03.2012, 20:23
  5. [Problem] ICQ 7.7
    Von GENETIKK im Forum Sonstige
    Antworten: 4
    Letzter Beitrag: 17.12.2011, 14:19
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.