thắc mắc How to security firebase?

  • Người tạo chủ đề Người tạo chủ đề vim.modo
  • Ngày bắt đầu Ngày bắt đầu

vim.modo

Junior Member
Chào các bác,

Mình code backend, nay nhảy qua mobile sử dụng Firestore làm DB, nhưng không biết nó bảo vệ database ntn?:ops:

Khi đăng ký app ở firebase thì đc file google-service.json add vào project. Chỉ cần có file này là có thể access vào DB
Vậy lỡ ai đó có thể decompile apk là có quyền với DB rồi pk?

Ngoài ra Firebase có cái security rules, cái này mình setup thử thấy giống điều kiện where hơn là auth.

Vậy nêú muốn chỉ app của mình đc quyền access vào DB thì làm ntn?

Bác nào biết thông não phát :burn_joss_stick:
 
cái rule đó có thể quy định được việc user đã được authenticate mới được thực hiện tác vụ (create, list, update, delete, ...) lên Firestore mà, hoặc điều kiện dựa trên claim của token luôn
việc authenticate thì là của Firebase Authentication
 
cái rule đó có thể quy định được việc user đã được authenticate mới được thực hiện tác vụ (create, list, update, delete, ...) lên Firestore mà, hoặc điều kiện dựa trên claim của token luôn
việc authenticate thì là của Firebase Authentication
Mình đang set rule như sau:
Mã:
allow read, write: if request.auth != null && request.auth.uid != null;

Trong source mình get data mà không cần auth gì cả:
Mã:
db.collection("stories").get()

Vậy là sao bác? Cho mình xin cái rule theo bác nói để thử xem
 
bạn đưa đầy đủ cái file rules lên mình phân tích cho, nhìn cái dòng trên đâu có biết được là bạn đang set rule cho Document nào trên Firestore
 
bạn đưa đầy đủ cái file rules lên mình phân tích cho, nhìn cái dòng trên đâu có biết được là bạn đang set rule cho Document nào trên Firestore
Mã:
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null && request.auth.uid != null;
    }
  }
}

Mình đang set all
 
rules set đúng rồi, vậy lúc bạn chạy code get all kia là user trên mobile của bạn đã đăng nhập Firebase chưa, nếu đăng nhập rồi thì đọc được là bình thường
 
rules set đúng rồi, vậy lúc bạn chạy code get all kia là user trên mobile của bạn đã đăng nhập Firebase chưa, nếu đăng nhập rồi thì đọc được là bình thường
Chưa đang nhập gì cả bạn ơi, vậy mình mới ko hiểu đó :beat_brick:

Mình tham khảo link này
https://firebase.google.com/docs/fi...y#secure_and_query_documents_based_on_authuid

Nhưng nó đang phụ thuộc vào field author trong Document stories

Mình không thấy nó yêu cầu token hay session gì cả
 
bạn dùng mobile sdk thì token nó sẽ tự gửi nếu như đã đăng nhập và decode thành cái request.auth trong rule đó
cơ bản theo thông tin bạn gửi chưa thấy gì sai, bạn check lại xem có sai sót ở bước nào không (chẳng hạn chưa publish cái rule, ...)
 
Screen Shot 2020-07-15 at 1.03.12 AM.png


Mình đã Disable tất cả Sign-in-method rồi. Vẫn get data được. Chứng tỏ Firebase Authentication chỉ là Auth cho app.
Còn access vào Firestore là không liên quan?
 

Tệp đính kèm

  • Screen Shot 2020-07-15 at 12.59.04 AM.png
    Screen Shot 2020-07-15 at 12.59.04 AM.png
    297 KB · Lượt xem: 125
disable hết thì những user đã đăng nhập vẫn giữ trạng thái đăng nhập thôi, bạn thử xóa app rồi chạy lại xem
 
disable hết thì những user đã đăng nhập vẫn giữ trạng thái đăng nhập thôi, bạn thử xóa app rồi chạy lại xem
Đc rồi bạn, ko hiểu sao nó cache trạng thái login kinh vậy. MÌnh xoá app cài lại vẫn là đang login.
Cài vào Simulator khác thì đã bị DENY đúng ý.
 
cái rule đó có thể quy định được việc user đã được authenticate mới được thực hiện tác vụ (create, list, update, delete, ...) lên Firestore mà, hoặc điều kiện dựa trên claim của token luôn
việc authenticate thì là của Firebase Authentication

Cho em xin đoạn set rule dựa trên claim với bác.
 

Thống kê chủ đề

Ngày tạo
vim.modo,
Người trả lời cuối
gâu_,
Trả lời
12
Lượt xem
1.409
Quay lại
Lên đầu trang