0

Wenn ich eine Seite habe, auf der nur autorisierte Benutzer reinkommen, was ist die sicherste Art und Weise, dies zu überprüfen Leute, die nicht sicher auf andere Seite sind?Sicherer Weg, um zu überprüfen, ob ein Benutzer berechtigt ist, eine Seite zu besuchen und andere umzuleiten Facebook Login

FB.getLoginStatus(function(response) { 
     if (response.status === 'connected') { 
     // do nothing its ok.. 
     } else if (response.status === 'not_authorized') { 
     window.location.replace("/login.php"); 
     } else { 
     window.location.replace("/login.php"); 
     } 
     }); 

ich denke, auf diese Weise nicht sicher ist, so helfen Sie mir einen besseren Weg von securly zu überprüfen, ob eine Person in einer bestimmten Seite wären hilfreich

Antwort

0

Einige weiteren Informationen zu Ihrer Umgebung zu sein ist ermächtigt, , aber im Allgemeinen und wenn Sie davon ausgehen, dass Ihr Backend auf PHP basiert, basierend auf den Umleitungsseiten in Ihrem Snippet, haben Sie recht, wenn Sie sagen, dass es nicht sicher ist.

Das Hauptproblem, das hier behandelt werden muss, ist, dass der Benutzer in den meisten Fällen Zugriff auf die clientseitige Skripte, Javascript hat. Wenn Sie versuchen, den Zugriff auf eine bestimmte Seite zu verhindern, müssen Sie sie serverseitig behandeln. Die Methodik hierfür variiert mit den beteiligten Authentifizierungsmechanismen/Bibliotheken.

Wenn Sie jemanden verhindern wollen keinen Code den Zugriff auf die auf der Seite ausführen würde:

if(isset($_SESSION['some_value']){ 
    $authorised = ($_SESSION['some_value'] === $correct) ? true : false; 
    if($authorised){ 
     header('Location: /logged_in/'); 
     exit(0); // or do anything else needed 
    }else{ 
     header('Location: /not_logged_in/'); 
     exit(1); // no further code will execute 
    } 
} 

Der deutliche Unterschied ist dies ausgewertet serverseitige, sondern muss darauf geachtet werden, dass das, um sicherzustellen, Nur eine Möglichkeit, 'some_value' legitim zu erhalten, wird auch serverseitig gemacht. Dies ist ein sehr allgemeines Beispiel, das besser in eine Klasse für eine robustere Authentifizierung, mehr Modularität usw. erweitert werden könnte. Wenn Sie eine Anwendung eines Drittanbieters (z. B. Oauth) verwenden, müssen Sie sicherstellen, dass Sie diese serverseitig korrekt konfiguriert haben natürlich auch.

Kurz gesagt, Ihre Authentifizierung hängt von den Bibliotheken und der Umgebung ab, die Sie verwenden, aber was bei den verschiedenen möglichen Implementierungen üblich ist, ist das Misstrauen gegenüber willkürlichen Benutzereingaben. Es gibt keine sichere Möglichkeit, einem Benutzer implizit zu vertrauen, dass er ehrlich ist.

Um eine Antwort präziser zu Ihres Anwendungsfall zu geben, sind weitere Informationen in Bezug auf Ihre Umgebung erforderlich, die Anforderungen, welche Bibliotheken zur Verfügung stehen usw.

+0

ich mit allem einverstanden Sie geschrieben, aber ich denke, der Kern meiner Frage ist, wie bekomme ich diese "Some_value" und legte es in der PHP-Datei auf eine sichere Weise, in Anbetracht dieser "etwas Wert" kommt von einem Javascript-Code. Ich möchte nicht PHP verwenden, um diesen Wert zu erhalten, dieser Wert kann nur in einem JavaScript-Code – NicePersonsLiveMore

+0

Logisch, Sie fragen: Wie kann ich einen nicht sicheren script-generierten Wert an einem sicheren Ort auf dem Server bekommen? Speichern Sie den Wert außerhalb des Dokumentenstamms, wo der Benutzer des php-Systems ('www-data' ?, noch keine zusätzlichen Umweltinformationen) darauf zugreifen kann, ein Endbenutzer jedoch nicht. Wenn sie sich jedoch bei * Ihrer * Website anmelden, befinden sich diese Informationen wahrscheinlich in einer Datenbank. Wenn Sie Google, etc. zur Authentifizierung verwenden, sollten Sie sich hier einen Überblick verschaffen: https://developers.google.com/identity/protocols/OAuth2 . Es wäre auch hilfreich zu wissen, warum diese js-only-Anforderung existiert. – semchev

+0

Glaubst du, dass dies ein sicherer Weg ist? FB.getLoginStatus (Funktion (Antwort)) { if (response.status === 'verbunden') { window.location.replace ("/ login.php? Id =" getAccessToken()); |||||| ||||||||||||||||||||| und dann auf der php-Seite die Gültigkeit des Tokens prüfen? – NicePersonsLiveMore

Verwandte Themen