Firebase数据库安全性规则适用于模拟器,而不适用于Java代码

安德罗凡

我想使用比现有时间戳更旧的时间戳来阻止数据添加。样本数据库:

{
  "latest" : {
    "517" : {
      "PARAM1" : {
        "timestamp" : 11492,
        "value" : 6593
      }
    }
  }
}

Firebase安全规则:

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null",

    "latest": {
        "$id": {
            "$param": {
                "timestamp": { ".validate": "newData.val() >= data.val()" }
            }
        }
    }
  }
}

现在,有趣的部分。当我检查从模拟器添加其他数据时,它可以按预期工作。较小的时间戳被拒绝,较高的时间戳被添加。但这对从Java代码添加相同数据没有任何影响。

应拒绝的样本数据:

/latest/517
{
  "PARAM1" : {
    "timestamp" : -5,
    "value" : 643
  }
}

com.google.firebase:firebase-admin:4.0.3按照“管理数据库API”部分中所述使用纯Java

POJO:

public class TimeValue {

    public long timestamp;
    public double value;

    public TimeValue(long timestamp, double value) {
        super();
        this.timestamp = timestamp;
        this.value = value;
    }

}

插入:

Map<String, TimeValue> timeValue = new HashMap<String, TimeValue>();
timeValue.put("PARAM1", new TimeValue(-5L, 643));

final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference idRef = database.getReference("latest/517");
idRef.setValue(timeValue);

为什么这样工作?这没有任何意义。

魁扎克

当您将Firebase用作管理员或服务帐户时,不会检查验证规则-因为,好吧,您是管理员:)

如果您只希望普通访问数据库,则可以以普通帐户登录。

如果您想拥有管理员权限,但仍希望检查验证规则,则只需要使用一个始终满足读/写规则的“特殊”帐户即可。我前段时间偶然发现了这个问题,有两种基本方法可以做到,在我的问题中进行了解释(显然同样安全,因为那是我当时的问题):

  1. 使用databaseAuthVariableOverride设置一些特殊的auth属性,该属性在根.read/.write规则中检查,并且对于服务帐户为true
  2. 创建一个特殊帐户(甚至是普通的电子邮件/密码),并使用相同的规则(root的.read/ .write对其uid,email或其他属性进行硬编码

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Firestore 数据库安全规则仅适用于模拟器

来自分类Dev

Firestore 规则适用于模拟器但不适用于网站

来自分类Dev

SDWebImage库不适用于模拟器

来自分类Dev

iOS绑定库不适用于模拟器,但适用于设备

来自分类Dev

Firebase实时数据库规则不适用于新用户

来自分类Dev

布局不适用于chrome移动模拟器

来自分类Dev

didFailToReceiveAdWithError不适用于iOS 8模拟器

来自分类Dev

Android 谷歌地图适用于模拟器,但不适用于真机

来自分类Dev

WebView 仅适用于模拟器而不适用于设备

来自分类Dev

适用于iOS的Firebase动态链接适用于我的设备和模拟器,但发布后不适用于用户

来自分类Dev

Firebase安全规则不适用于CollectionGroup

来自分类Dev

为什么从 Firebase 数据库检索数据不适用于用户身份验证规则但使用匿名规则?

来自分类Dev

插入不适用于SQLAlchemy数据库会话

来自分类Dev

插入不适用于SQLAlchemy数据库会话

来自分类Dev

CSV种子不适用于Rails数据库

来自分类Dev

自动滑动适用于iOS 6模拟器,但不适用于iOS 7

来自分类Dev

自动滑动适用于iOS 6模拟器,但不适用于iOS 7

来自分类Dev

css3视口:适用于chrome模拟器,不适用于android手机

来自分类Dev

iOS 10.3 文本转语音适用于模拟器但不适用于设备

来自分类Dev

该应用程序适用于模拟器但不适用于实际设备

来自分类Dev

自定义 Alexa 技能不适用于回声点,但适用于模拟器

来自分类Dev

React Native Android:请求适用于 android 模拟器,但不适用于 Play Store 构建

来自分类Dev

会话无效不适用于基于LTPA的安全性

来自分类Dev

Java Hibernate标记替换不适用于Oracle数据库中的大字段

来自分类Dev

将数据保存到数据库并发送电子邮件的 php 代码适用于 chrome 但不适用于 safari

来自分类Dev

Cordova / Phonegap摇动手势检测不适用于ios模拟器

来自分类Dev

ShowMessage()在Delphi xe5中不适用于iOS 7模拟器

来自分类Dev

Google Play服务不适用于Android模拟器API级别11

来自分类Dev

模拟器手动位置不适用于Google Play服务

Related 相关文章

  1. 1

    Firestore 数据库安全规则仅适用于模拟器

  2. 2

    Firestore 规则适用于模拟器但不适用于网站

  3. 3

    SDWebImage库不适用于模拟器

  4. 4

    iOS绑定库不适用于模拟器,但适用于设备

  5. 5

    Firebase实时数据库规则不适用于新用户

  6. 6

    布局不适用于chrome移动模拟器

  7. 7

    didFailToReceiveAdWithError不适用于iOS 8模拟器

  8. 8

    Android 谷歌地图适用于模拟器,但不适用于真机

  9. 9

    WebView 仅适用于模拟器而不适用于设备

  10. 10

    适用于iOS的Firebase动态链接适用于我的设备和模拟器,但发布后不适用于用户

  11. 11

    Firebase安全规则不适用于CollectionGroup

  12. 12

    为什么从 Firebase 数据库检索数据不适用于用户身份验证规则但使用匿名规则?

  13. 13

    插入不适用于SQLAlchemy数据库会话

  14. 14

    插入不适用于SQLAlchemy数据库会话

  15. 15

    CSV种子不适用于Rails数据库

  16. 16

    自动滑动适用于iOS 6模拟器,但不适用于iOS 7

  17. 17

    自动滑动适用于iOS 6模拟器,但不适用于iOS 7

  18. 18

    css3视口:适用于chrome模拟器,不适用于android手机

  19. 19

    iOS 10.3 文本转语音适用于模拟器但不适用于设备

  20. 20

    该应用程序适用于模拟器但不适用于实际设备

  21. 21

    自定义 Alexa 技能不适用于回声点,但适用于模拟器

  22. 22

    React Native Android:请求适用于 android 模拟器,但不适用于 Play Store 构建

  23. 23

    会话无效不适用于基于LTPA的安全性

  24. 24

    Java Hibernate标记替换不适用于Oracle数据库中的大字段

  25. 25

    将数据保存到数据库并发送电子邮件的 php 代码适用于 chrome 但不适用于 safari

  26. 26

    Cordova / Phonegap摇动手势检测不适用于ios模拟器

  27. 27

    ShowMessage()在Delphi xe5中不适用于iOS 7模拟器

  28. 28

    Google Play服务不适用于Android模拟器API级别11

  29. 29

    模拟器手动位置不适用于Google Play服务

热门标签

归档