我尝试使用firebase存储,看着授权用户可以从网络客户端上传文件,我想知道是什么阻止用户通过调整javascript来改变路径。
请考虑以下
我想按如下方式组织用户文件。
root : {
users :
uid1 : images {}
: audio {}
-users:
uid2 : images {}
: audio {}
-users:
: uid3 : images {}
: audio {}
}
然后将图像上传到/ userid / images /
var storage = firebase.storage();
var storageRef = storage.ref();
var imagesRef = storageRef.child(uid_g).child('images').child(path);
问题:
是什么阻止用户将儿童('图片')更改为儿童('音频')?
我只是想确保我设置的路径不会在存储时更改。
服务器上的规则我只允许用户读写数据。
// Grants a user access to a node matching their user ID
service firebase.storage {
match /b/<your-firbase-storage-bucket>/o {
// Files look like: "user/<UID>/path/to/file.txt"
match /user/{userId}/{allPaths=**} {
allow read, write: if request.auth.uid == userId;
}
}
}
答案 0 :(得分:0)
您可以继续使用安全规则来创建进一步的路径限制:
service firebase.storage {
match /b/<your-firbase-storage-bucket>/o {
match /user/{userId} {
match /images {
// This will match only /user/{userId}/images
allow read, write: if imageCondition();
}
match /audio {
// If you don't want the user to change to audio, you can either say if false or just don't include this path
allow read, write: if audioCondition();
}
}
}
}