Thông thường, bảo mật là một trong những phần phức tạp nhất của ứng dụng phát triển ứng dụng. Trong hầu hết các ứng dụng, nhà phát triển phải xây dựng và chạy một máy chủ xử lý quy trình xác thực (người dùng là ai) và uỷ quyền (những việc người dùng có thể làm). Việc xác thực và uỷ quyền khó thiết lập, khó thực hiện hơn và cực kỳ quan trọng đến sự thành công của sản phẩm.
Tương tự như cách tính năng Xác thực Firebase giúp bạn dễ dàng xác thực Người dùng, Quy tắc bảo mật của Firebase cho Cloud Storage giúp bạn dễ dàng cho phép người dùng và xác thực yêu cầu. Quy tắc bảo mật của Cloud Storage giúp bạn giải quyết những vấn đề phức tạp bằng cách cho phép bạn chỉ định các quyền dựa trên đường dẫn. Chỉ trong vài dòng mã, bạn có thể ghi các quy tắc uỷ quyền hạn chế yêu cầu Cloud Storage vào người dùng cụ thể hoặc giới hạn kích thước của tệp tải lên.
Cơ sở dữ liệu theo thời gian thực của Firebase có một tính năng tương tự, đó là Quy tắc bảo mật cơ sở dữ liệu theo thời gian thực của Firebase
Xác thực
Việc biết được người dùng của bạn là ai là một phần quan trọng trong việc tạo ứng dụng và
Tính năng Xác thực Firebase cung cấp một giải pháp dễ sử dụng, an toàn và chỉ dành cho máy khách
vào xác thực. Quy tắc bảo mật của Firebase cho Cloud Storage liên kết với quá trình xác thực Firebase
nhằm tăng cường bảo mật cho người dùng. Khi người dùng được xác thực bằng tính năng Xác thực Firebase,
biến request.auth
trong Quy tắc bảo mật của Cloud Storage trở thành một đối tượng
chứa mã nhận dạng duy nhất của người dùng (request.auth.uid
) và tất cả người dùng khác
trong mã thông báo (request.auth.token
). Khi người dùng không
đã xác thực, request.auth
là null
. Tính năng này cho phép bạn kiểm soát một cách an toàn
quyền truy cập dữ liệu của từng người dùng. Bạn có thể tìm hiểu thêm trong
Mục Xác thực.
Ủy quyền
Việc nhận dạng người dùng chỉ là một phần của quá trình bảo mật. Khi đã biết họ là ai, bạn cần có cách để kiểm soát quyền truy cập của họ vào các tệp trong Cloud Storage.
Cloud Storage cho phép bạn chỉ định lệnh uỷ quyền theo từng tệp và đường dẫn
các quy tắc nằm trên máy chủ của chúng tôi và xác định quyền truy cập vào các tệp trong ứng dụng của bạn.
Ví dụ: Quy tắc bảo mật mặc định của Cloud Storage yêu cầu Xác thực Firebase trong
để thực hiện thao tác read
hoặc write
bất kỳ trên mọi tệp:
service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write: if request.auth != null; } } }
Bạn có thể chỉnh sửa các quy tắc này bằng cách chọn một ứng dụng Firebase trong bảng điều khiển của Firebase
và xem thẻ Rules
của phần Bộ nhớ.
Xác thực dữ liệu
Quy tắc bảo mật của Firebase cho Cloud Storage cũng có thể dùng để xác thực dữ liệu, bao gồm
xác thực tên và đường dẫn tệp cũng như các thuộc tính siêu dữ liệu của tệp như
contentType
và size
.
service firebase.storage { match /b/{bucket}/o { match /images/{imageId} { // Only allow uploads of any image file that's less than 5MB allow write: if request.resource.size < 5 * 1024 * 1024 && request.resource.contentType.matches('image/.*'); } } }
Các bước tiếp theo
Bắt đầu xây dựng quy tắc lập kế hoạch cho bộ chứa Cloud Storage của bạn.
Tìm hiểu thêm về cách bảo mật dữ liệu của bạn thông qua các quy tắc bảo mật.