OAuth API - Login & Fanpage API for Habbo

  • Guten Tag RetroTown!


    Wie vielleicht einige wissen haben Sound und ich im März an einem neuen Live-Hotel CMS gearbeitet.

    Jedoch stellten wir das Development ein und die internen Files liegen seitdem auf meinem Computer verwahrlost rum... Gestern wurde von Sir Haruma eine 'Anfänger API' veröffentlicht, in den Kommentaren las ich dass man mehr von mir erwarten hätte können... Ich nahm mir die Kommentare natürlich persönlich und möchte deswegen die ehemals für das Live-Hotel geplante 'OAuth API' releasen.



    Das Ziel der OAuth-API war eine Schnittstelle zwischen offiziellen Fanseiten um dem Retro selbst zu schaffen, aber OAuth ist nicht nur eine API sondern auch ein Login-System.

    Das Ziel des Login-Systems war eine sichere Verschlüsselung (Client- & Serverside) zu haben und CSRF-Attacken unwirksam zu machen. Ihr könnt euch ja die Source selbst ansehen :)

    Ich bitte euch die Datei 'login.js' zu nutzen, denn die verschlüsselt Passwörter bereits clientside. OAuth hasht das nochmal dann per SHA3-512.

    Also merkt euch: Solltet ihr zu OAuth greifen dann verschlüsselt bei der Registrierung die Passwörter zuerst per SHA3-256 und dann nochmals per SHA3-512.

    Die Ausgabe der API erfolgt immer als JSON-String.


    Unbedingt unter "oauth/conf" die "configuration.ini" Datei bearbeiten!

    Ich empfehle euch auch die internen OAuth Dateien vom Web unzugänglich zu machen.


    In dem Rar-Archiv könnt ihr eine Datei namens "http_req.class.php" finden, diese gibt ihr einer offiziellen Fanseite einfach mit! Nachdem sie die Datei erhalten haben, öffnet ihr die Datei "verified.class.php". In der Line 22 könnt ihr ein array namens '$pages' sehen, in diesem fügt ihr nun irgendeinen Schlüssel-Wert ein welchen ihr der offiziellen Fanseite mitteilt... Der Schlüssel bekommt den Wert der Fanseiten-URL + .auth Datei. Die .auth könnt ihr z.B. BLABLA2238zf7.auth nennen, die Fanseite muss diese .auth Datei dann auf ihrem Server hochladen. Direkt unter der Line 22 (23) ist ja bereits auch ein Beispiel vorhanden.

    Wozu das ganze? HTTP-Header sind manipulierbar, deswegen manipulieren wir selbst den HTTP_REFERER Header und setzen etwas beliebiges, OAuth's Verifizierungssystem wird dann einfach den manipulierten HTTP_Referer in seiner Tabelle 'scannen'. Findet er eine Übereinstimmung mit dem manipulierten HTTP_Referer so schickt er eine Anfrage an die registrierte Adresse und prüft ob die .auth Datei existiert.



    Bevor ich es vergesse, OAuth arbeitet per User Ids. Ich finde man sollte immer per Id arbeiten, sonst hat man später vielleicht mal Probleme bei gewissen Features wie den Benutzernamen ändern (Siehe fail im PSN xd) :P

    Hier eine Todo-List die ihr unbedingt abarbeiten solltet:

    • login.js - Adjust to your html file | form names, input names | ...
    • login.js - Check for empty input | Min. char check | Max. char check | ...
    • OAuth - Adjust to your system


    Es gibt eigentlich nichts mehr zusagen außer Enjoy :P Sollte ich was vergessen haben einfach bescheid geben!


    Requirements: Min. PHP 7.1.7 (x86/x64)

    Bedingung: Der Quellcode ist frei für alle, jedoch müssen die Credits erhalten bleiben auch wenn das ganze nur als Basis für eine leistungsfähigere API dienen mag.




    https://www.virustotal.com/de/…03e4/analysis/1510322823/

    -----------------------------------------

    MfG,

    Rockstar*

    Dateien

    • wwwroot.zip

      (15,89 kB, 33 Mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Rockstar* ()

  • Sorry, aber OAuth ist ein Standard, kein Name.

    Habs nur übergeflogen, aber sieht nicht wie oauth aus.

    ¯\_(ツ)_/¯ Well, nothing we can do about it now.

    Ich habs so genannt weils mir passte und ist mir relativ scheiß egal obs ein Standard ist oder sonst was ( ͡° ͜ʖ ͡°)


    Das OAuth bzw. OAuth2 Protokoll hat einen viel komplexeren Protocol Flow, der auch andere Absichten verfolgt.


    bild2_84.jpg


    https://de.wikipedia.org/wiki/OAuth

  • Ich hab das ganze einfach nur OAuth genannt weil mir nichts anderes eingefallen ist.

    Hat gar nicht mit Oauth.net oder sonst was zutun.


    Egal, hab meine Likes die ich einfach nur wollte :troll:

    plex kansch schließen

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von plex ()

  • Ich hab das ganze einfach nur OAuth genannt weil mir nichts anderes eingefallen ist.

    Hat gar nicht mit Oauth.net oder sonst was zutun.


    Egal, hab meine Likes die ich einfach nur wollte :troll:

    plex kansch schließen

    Nein, hier wurde nur versucht dir, Kind, zu zeigen, dass es wichtig ist, Normungen einzuhalten und zu berücksichtigen, wenn man etwas publiziert.


    Aber es war ja klar, dass Kinder wie du so schlecht auf Feedback reagieren.

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von plex ()

  • OAuth ist ein Standard Protokoll, man erwartet bei Verwendung und Einbindung gewisse Regeln nach denen man gehen kann. Das hat nichts mit Stock im Arsch zu tun.

    Wenn ich von HTTP spreche, dann erwarte ich auch dass vom Hypertext Transfer Protocol gesprochen wird und nicht anderes.


    Man sollte sich so etwas doch klar machen!

    Auf den Namen OAuth (sogar in der richtigen Schreibweise) kommt man nicht einfach so. Zudem sprichst du auch im 1. Post über 'Login-Verfahren'. Man sollte sich als Entwickler schon mit der Materie befassen.