Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Sicherheitsrelevantes Token erstellen vom typ INT

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Sicherheitsrelevantes Token erstellen vom typ INT

    Hallo,

    ich habe in meiner Webseite eine Datei welche per Ajax ein PHP Script aufruft, welches die Datenbank abfragt ob der Benutzername bereits vergeben oder noch frei ist.

    Da "checkdb.php" als eigenständiges Script aufgerufen wird, inkludiere ich 2 Klassen und die "settings.php"

    Da das Script ja eine optimale Angriffsfläche für jeden "Häcker" bietet, würde ich gerne ein Token zur Überprüfung des Vorgangs nutzen.

    Eigentlich gebe ich einem Sicherheitstoken ein hidden input Feld, was diesmal leider nicht funktioniert wegen Ajax, da das Script ja nicht abgesendet wird.

    Code:
    <input type="text" size="24" maxlength="50" onchange="checkPort(this.value, TOKEN)" name="username">
    Ich habe es nun so gelöst das ich die Remote IPadresse nehme, sie mit sha1(); Verschlüssel, dieser dann mit einer Funktion alle Buchstaben entziehe und somit nur den INT Wert, direkt an Ajax übergebe.

    In der "checkdb.php" wird dann ein neuer Wert generiert aus der "aktuellen" IP-Adresse.

    Dann Vergleiche ich die beiden Werte und Autorisiere somit den Zugriff auf die Datenbank.


    Ist die Abfrage wie ich sie durchführe sicher oder sollte ich eine andere Methode wählen?

  • #2
    Eigentlich gebe ich einem Sicherheitstoken ein hidden input Feld, was diesmal leider nicht funktioniert wegen Ajax, da das Script ja nicht abgesendet wird.
    Natürrlich geht das, hol dir mit JS den Wert des hidden input und übergib ihn mit an den AJAX Request. Damit jeder Token nur einmal verwendet werden kann, kannst du mit der Antwort einen neuen Token mitsenden, der dann beim nächsten Request verwendet wird.

    Kommentar


    • #3
      Ein Token sollte einmalig sein. Oder zumindest einmalig genug dass nie zwei gleiche Tokens zur gleichen Zeit "valide" sein können.

      Eine IP-Adresse ist dazu ungeeignet.

      Generiere einen hinreichend zufälligen Wert, merk dir diesen auf irgendeine Art die der User nicht manipulieren kann (z.B. Session) und gleich dann später wieder ab.

      Der Punkt ist: selbst wenn jemand rausfindet, wie du die Authentizität sicherstellst, darf ihm dieses Wissen nichts bringen.

      Kommentar


      • #4
        Zitat von Nagazi Beitrag anzeigen
        mit sha1(); Verschlüssel
        sha1() ist ein Hash-Verfahren! Bitte informiere dich über den Unterschied von Hash- und Verschlüsselungsverfahren.

        Für die Token-Generierung kann ich openssl_random_pseudo_bytes() (http://php.net/manual/en/function.op...eudo-bytes.php) empfehlen.

        Kommentar


        • #5
          Zitat von Trainmaster Beitrag anzeigen
          sha1() ist ein Hash-Verfahren! Bitte informiere dich über den Unterschied von Hash- und Verschlüsselungsverfahren.
          Der Unterschied zwischen Paritäts- und Chiffrierverfahren ist mir sehr gut bekannt, überdenke aber nicht jedes Wort im fließenden Kontext.

          Zitat von Trainmaster Beitrag anzeigen
          Für die Token-Generierung kann ich openssl_random_pseudo_bytes() (http://php.net/manual/en/function.op...eudo-bytes.php) empfehlen.
          danke klaptt ein A

          Kommentar

          Lädt...
          X