Beim Erstellen einer Facebook-Iframe-App übergibt Facebook Parameter als GET-Parameter an die Anwendung. Innerhalb der Query-Zeichenfolge befindet sich ein Feld namens fb_sig, das eine eindeutige Signatur darstellt, die nur von Facebook erstellt werden kann.Abrufen des Anmeldestatus eines Benutzers für eine Facebook Iframe-App
Das Problem, das ich habe, ist, dass ich die Abfragezeichenfolge leicht an meine Bewerbungsurl anhängen und auf die Anwendung von irgendwo außerhalb von Facebook zurückgreifen kann. Die Methoden, die die facebook API bereitstellt, überprüfen nur die GET-Parameter/COOKIE auf bestimmte Werte. Gibt es eine API-Methode, die tatsächlich den Login-Status eines Facebook-Benutzers zurückgeben kann (der es nicht von GET-Parametern oder COOKIE ableitet).
Meiner Meinung nach ist dies ein großer Sicherheitsfehler, da jeder eine Browseranforderung verfolgen und die Abfragezeichenfolge abrufen kann, um auf das Konto eines anderen Benutzers zuzugreifen. Auch der von Facebook bereitgestellte Parameter fb_sig läuft nicht ab, so dass er immer zur Validierung verwendet werden kann.
Ich habe darüber nachgedacht, das HTTP_REFERER-Flag zu überprüfen, um sicherzustellen, dass die Anfrage nur von Facebook kommt, aber viele Leute können den Refooer SPOOF und auch deaktivieren. Irgendwelche Vorschläge oder Lösungen?
Ich denke, das Problem ist, dass Benutzer meine Anwendung offline_access gewähren, so dass ihre Sitzungsschlüssel unendlich sind, selbst wenn ich getLoggedInUser() benutze, selbst wenn der Benutzer ausgeloggt ist, wird es trotzdem die UID zurückgeben. –