Facebook API Connect mit Session ID

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Facebook API Connect mit Session ID

    Hallo!

    ich habe mal eine Frage zu diesen Facebook Connect.

    Wir benutzen diese Möglichkeit bereits in unserem Online-Shop, damit sich unsere Kunden auch einen Account anlegen können. Ich habe mir dafür das PHP SDK runtergeladen, was auch gleich gut funktioniert hat.

    Das Problem ist leider nur, dass unser Online-Shop noch mit PHP 4 arbeitet, und dieses PHP-SDK von Facebook PHP 5 voraussetzt. Unser Webshoster unterstützt natürlich auch PHP5. Ich musste diese Dateien ledig in .php5 ändern. Ist nicht die perfekte Lösung, aber es geht erstmal.

    Was mich allerdings etwas beunruhigt ist, dass die Session von Facebook in die URL-Adresse mit reingeschrieben wird. Das sieht dann z.B. so aus: login.php5?session={%22session_key%22%3A%2 ...

    Frage 1: Kann man das irgendwie ändern, dass man diese Session nicht in der Adresse sieht. Hat ja auch was mit Sicherheit zu tun...

    Frage 2: Gibt es da vielleicht noch ein anderes SDK was auch mit PHP 4 arbeitet? Das wäre sehr viel besser für mich, da ich das dann auch direkt in den Online-Shop einbetten könnte.


    Ich hoffe ihr könnt mir helfen :-).
  • Hi,
    hast du denn mal probiert ob dein Shop auch mit php5 funktioniert? So groß sind die Unterschiede nicht und php5 ist inzwischen immerhin fast 7 Jahre alt.

    Zu deiner ersten Frage:
    Du nutzt bestimmt auch die API von hier, oder? github.com/facebook/php-sdk
    Bleibt diese Session ID denn bei jedem Request erhalten oder verfällt sie?
    Sicher, dass dein Webshop keine SID im Parameter überträgt?

    Das muss entweder an deinen Browser- oder Webspaceeinstellungen liegen. Denn die URL Variante wird eigentlich nur benutzt, wenn der Benutzer keine Cookies akzeptiert.
  • Der Shop würde auch mit PHP5 laufen, allerdings müsste ich da sicherlich so einiges im Quelltext ändern. Die PHP5 Funktion kann man ganz einfach in der .htaccess Datei aktivieren, das wäre nicht das Problem.

    -------

    Genau diese Facebook API benutze ich auch! Mit meinen PHP4 Skripten funktionieren diese Session ID's auch immer einwandfrei. Nur bei diesen PHP5 Skripten irgendwie nicht. Auch als ich letztens mal PHP5 aktiviert habe, hatte ich wieder den gleichen Effekt, dass die Session in der URL zu sehen war. Cookies sind aktiviert.
  • mwde85 schrieb:

    Auch als ich letztens mal PHP5 aktiviert habe, hatte ich wieder den gleichen Effekt, dass die Session in der URL zu sehen war

    Na dann einigen wir uns doch schonmal drauf, dass es ein PHP5 Problem ist - kein Facebook Problem.

    Also liegt es vermutlich an php5, dass die Session IDs aktiviert werden. Vielleicht kannst du mal bei deinem Hoster anfragen. Andererseits, was stört dich daran überhaupt ;)
    Ich könnte mir vorstellen, dass der Betrieb von php4 und php5 gleichzeitig das Problem ist. Das eine wird vermutlich als Apache Modul laufen, das andere als CGI und beide müssen sich über den tmp Ordner die Session speichern.
    Vielleicht ist das Setup des Hosters hier nicht korrekt.

    Du könntest mal noch ein wenig rumexperimentieren. php4 Datei mit session_start und Links, php5 Datei mit session_start und Links, ...
  • Und genau das habe ich eben mal ausführlich getestet :-).

    PHP 5 macht scheinbar wirklich Probleme! Allerdings läuft die Sache wieder wenn ich per .htaccess PHP5 offiziell aktiviere. Dann funktioniert mein Session-Test richtig und die Session wird auch normal ausgegeben.

    Ich habe dann auch mal versucht ob die Facebook-API immer noch die Session in die URL schreibt, was aber leider wieder der Fall war (wie gesagt PHP5 war aktiv!). Wieder konnte ich die komplette Session in der URL sehen. Es funktioniert zwar auch alles so, aber man könnte so halt die Session sicherlich manipulieren, sprich gefährlichen Code ausführen (oder nicht?), das ist der Punkt... Sonst funktioniert der ganze Facebook-Login genau so wie ich es haben will!

    Wenn ich diesen PHP5 Befehl aber nicht in die .htaccess Datei reinschreibe und ich ändere die PHP-Datei einfach in xxx.php5 (das führt dann laut Provider auch PHP5-Code aus, auch wenn ich PHP5 nicht in der .htaccess aktiviert habe), dann erhalte ich immer diese Fehlermeldung wenn ich mit den Befehl session_start(); arbeite:

    "Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0"

    An diesen Ordner komme ich aber nicht dran da ich keinen Root Server habe.


    Die URL schickt ja wenn ich mich über den Facebook Connect Button einlogge ja auch noch diese Befehle an die Facebook-API, aber das scheint wohl alles richtig zu sein, habe daran nichts verändert:

    "...login.php5&return_session=1&session_version=3&v=1.0"

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von mwde85 ()