2017-05-09 2 views
0

Ist es möglich, Anforderungen zu deaktivieren, die ohne Hauptschlüssel an Parse gesendet werden? Ich möchte nur über mein benutzerdefiniertes Backend auf Parse zugreifen und den Benutzern keinen direkten Zugriff gewähren. Bedeutet public 'read' für die Benutzerklasse, dass jeder die Datensätze in dieser Klasse lesen kann? Wenn ja, warum ist das ein Standard - wäre das nicht gegen gute Sicherheitsvorkehrungen?Anforderungen an Parse-Server ohne Hauptschlüssel deaktivieren

Danke, Daniel

Antwort

0

öffentliche Lese bedeutet, dass jemand mit Ihrem api Schlüssel den Benutzer Sammlung von Ihrem Parse-Server lesen kann. Api-Schlüssel ist nicht der beste Ansatz, um Ihre App zu schützen, weil jeder sie kennen kann, indem er Ihre Netzwerkanforderungen "schnüffelt". Um den Zugriff zu schützen und zu ermöglichen, können Sie Ihre Objekte mit ACLs schützen, mit denen Sie Zugriff für bestimmte Benutzer (die angemeldet sind) oder für bestimmte Rollen erstellen können. So haben Sie mehrere Möglichkeiten:

  1. erstellen Master Benutzer - jeder Benutzer müssen Benutzernamen und ein Passwort haben, und wenn Sie Ihre Parse-Objekte sicher machen erstellen, dass nur diese bestimmten Benutzer erstellen/lesen/löschen und aktualisieren . Sie müssen nur sicherstellen, dass beim Erstellen eines Objekts eine ACL für diesen Benutzer erstellt wird, sodass nur dieser Benutzer das Objekt ändern und lesen kann. http://docs.parseplatform.org/rest/guide/#security

  2. Mit Parse-Cloud-Code - In Cloud-Code gibt es ein nettes Feature von useMasterKey ist die Parse-Server auf ein beliebiges Objekt der vollen Zugang bieten so für: Sie können hier mehr über Parse-Server-Sicherheit und ACL gelesen Bei jeder ausgeführten Operation (über JS SDK) können Sie auch useMasterKey auf true setzen und dann parse-server alle ACLs ignorieren und die Abfrage für Sie ausführen. Die useMasterKey-Funktion funktioniert nur im Cloud-Code-Kontext, sodass sie sicher ist. Wenn Sie eine zusätzliche Sicherheitsebene bereitstellen möchten, können Sie die Cloud-Code-Funktion mit Ihrem Hauptbenutzer (aus Abschnitt 1) ​​ ausführen und innerhalb des Cloud-Codes für die Benutzersitzung nachsehen. Wenn die Sitzung leer ist, können Sie einen Fehler zurückgeben.

Sie können hier mehr über Cloud-Code lesen: http://docs.parseplatform.org/cloudcode/guide/

Dies ist der Code, der die Benutzersitzung bestätigen:

if (!request.user || !request.user.get("sessionToken")) { 
    response.error("only logged in users are allowed to use this service"); 
    return; 
} 
+0

Danke, aber ich bin immer noch nicht ganz klar, wie Parsen von Antworten auf Anfragen ohne Hauptschlüssel zu sperren? Ich plane, mein eigenes Backend zu betreiben und nur dort zu greifen. Würden Sie Cloud-Code gegenüber dem benutzerdefinierten NodeJS-Backend empfehlen? – DVassilev

+0

Ja, weil es Ihnen viel Rüstzeit erspart und es kümmert sich um Sicherheit und mehr –

+0

und wie würde ich den Zugriff für Anfragen deaktivieren, wenn nicht Hauptschlüssel verwenden? – DVassilev

Verwandte Themen