Zoeken…


Invoering

Met Firebase Realtime Database zijn uw databaseregels de beveiliging van uw server. U moet heel voorzichtig zijn en weten wie toegang heeft tot uw database. Het is belangrijk dat niemand toegang krijgt tot uw gegevens die dat niet zouden moeten doen.

Standaard staat de Firebase Realtime Database-regels elke geverifieerde gebruiker toe alle gegevens te lezen en te schrijven, dit is waarschijnlijk niet wat u met uw app wilt doen.

Bekijk de onderstaande voorbeelden voor verschillende scenario's.

Opmerkingen

De Firebase Realtime Database biedt een flexibele, op expressie gebaseerde regelstaal met JavaScript-achtige syntaxis om eenvoudig te definiëren hoe uw gegevens moeten worden gestructureerd, hoe deze moeten worden geïndexeerd en wanneer uw gegevens kunnen worden gelezen en geschreven. In combinatie met onze authenticatiediensten kunt u bepalen wie toegang heeft tot welke gegevens en de persoonlijke informatie van uw gebruikers beschermen tegen ongeautoriseerde toegang.

Standaard vereisen uw databaseregels Firebase-verificatie en verlenen ze volledige lees- en schrijfrechten alleen aan geverifieerde gebruikers. De standaardregels zorgen ervoor dat uw database niet voor iedereen toegankelijk is voordat u de kans krijgt om i te configureren

Officiële documentatie

https://firebase.google.com/docs/database/security/quickstart

Hoe regels te configureren

  1. Ga in de Firebase-console.
  2. Kies je project
  3. Klik links op het gedeelte Database en selecteer vervolgens het tabblad Regels.

Als u uw beveiligingsregels wilt testen voordat u ze in productie neemt, kunt u bewerkingen in de console simuleren met behulp van de knop Simuleren rechtsboven in de regeleditor.

De standaard regels

De standaardregels vereisen verificatie.
Ze bieden volledige lees- en schrijftoegang voor geverifieerde gebruikers van uw app. Ze zijn handig als u gegevens wilt openen voor alle gebruikers van uw app, maar niet wilt dat deze toegankelijk zijn voor iedereen.

// These rules require authentication
{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

Hoe u uw bestanden openbaar leesbaar en schrijfbaar kunt maken

Definieer gewoon:

// These rules give anyone, even people who are not users of your app,
// read and write access to your database
{
  "rules": {
    ".read": true,
    ".write": true
  }
}

Het kan handig zijn tijdens de ontwikkeling, maar let op omdat dit toegangsniveau betekent dat iedereen naar uw database kan lezen of schrijven .

Hoe lees- en schrijftoegang uit te schakelen

U kunt privéregels definiëren om lees- en schrijftoegang door gebruikers tot uw database uit te schakelen. Met deze regels hebt u alleen toegang tot de database als u beheerdersrechten hebt (die u kunt verkrijgen door toegang te krijgen tot de database via de Firebase-console of door u aan te melden vanaf een server ) .

// These rules don't allow anyone read or write access to your database
{
  "rules": {
    ".read": false,
    ".write": false
  }
}

Toegang alleen verlenen aan geverifieerde gebruikers

Hier is een voorbeeld van een regel die elke geverifieerde gebruiker een persoonlijk knooppunt geeft op /users/$user_id waarbij $ user_id de ID is van de gebruiker die is verkregen via Authentication .

// These rules grant access to a node matching the authenticated
// user's ID from the Firebase auth token
{
  "rules": {
    "users": {
      "$user_id": {
        ".read": "$user_id === auth.uid",
        ".write": "$user_id === auth.uid"
      }
    }
  }
}

Het toestaan van het lezen van een specifiek item uit de groep, maar voorkomen dat groepsleden worden vermeld

Het is gebruikelijk om groepen items te maken door eenvoudige waardeknooppunten te maken met item-ID als sleutel. We kunnen bijvoorbeeld een gebruiker toevoegen aan de groep "administrators" door een knooppunt te maken op /administrators/$user_id met een waarde true . We willen niet dat iemand weet wie beheerders zijn, om veiligheidsredenen, maar we willen nog steeds controleren of een geverifieerde gebruiker beheerder is . Met deze regels kunnen we precies dat doen:

{
  "rules": {
    "administrators": {
      // No one can list administrators
      ".read": "false",
      "$uid": {
        // Authenticated user can check if they are in this group
        ".read": "$uid === auth.uid",
        // Administrators can write
        ".write": "data.parent().child(auth.uid).val() === true",
        // Allow only add or delete, no duplicates
        ".validate": "!data.exists() || !newData.exists() || newData.isBoolean()",
      }
    }
  }
}


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow