Câu hỏi: PRM393 - Xác thực và phiên đăng nhập
24 câu trắc nghiệm kèm lời giải của môn Lập trình di động (Flutter) - Mobile Programming, xếp theo thứ tự nhập vào ngân hàng.
Danh sách câu hỏi
20/24 câuCòn 4
ANavigator
BGuard
CRoute protection
DMiddleware
Lời giải
Mở trang câu hỏi này →Widget mẫu nào dưới đây bảo vệ các đường dẫn đã xác thực? Để bảo vệ các đường dẫn đã xác thực, chúng ta cần sử dụng một widget mẫu phù hợp. Trong các lựa chọn, Guard là widget mẫu được sử dụng để bảo vệ các đường dẫn đã xác thực. Nó giúp kiểm tra xem người dùng đã được xác thực hay chưa trước khi cho phép truy cập vào các đường dẫn đó. Điều này giúp ngăn chặn người dùng không được phép truy cập vào các đường dẫn nhạy cảm.
2Which HTTP header is commonly used for authorization?4 lựa chọnDễ75% trả lời đúng
AContent-Type
BAccept
CAuthorization
DCache-Control
Lời giải
Mở trang câu hỏi này →HTTP header được sử dụng phổ biến cho việc xác thực quyền truy cập là Authorization. Header này được sử dụng để xác thực người dùng khi thực hiện yêu cầu HTTP. Nó chứa thông tin về token hoặc chứng chỉ xác thực được sử dụng để xác thực người dùng. Ví dụ, khi thực hiện yêu cầu HTTP, người dùng có thể gửi header Authorization với giá trị là token hoặc chứng chỉ xác thực của họ. Server sẽ sử dụng thông tin này để xác thực người dùng và quyết định có cho phép truy cập hay không. Header Authorization là một phần quan trọng của cơ chế xác thực quyền truy cập trong HTTP.
3Which practice improves deployment security?4 lựa chọn
ADebug builds
BSecure signing keys
CHardcoding secrets
DSkipping validation
Lời giải
Mở trang câu hỏi này →Để cải thiện bảo mật khi triển khai ứng dụng, chúng ta cần xem xét các lựa chọn sau. Debug builds (chạy ứng dụng với chế độ debug) không liên quan trực tiếp đến bảo mật triển khai. Hardcoding secrets (đặt bí mật vào mã nguồn) là một thói quen xấu vì nó có thể tiết lộ thông tin nhạy cảm. Skipping validation (bỏ qua xác thực) cũng không phải là một lựa chọn tốt vì nó có thể dẫn đến việc ứng dụng không được kiểm tra đúng cách. Secure signing keys (khai thác khóa ký số an toàn) là một thực hành tốt vì nó giúp đảm bảo rằng ứng dụng được tải xuống và chạy trên thiết bị chính xác mà nó được thiết kế cho. Điều này giúp ngăn chặn các cuộc tấn công từ bên ngoài và bảo vệ ứng dụng khỏi bị xâm phạm.
4What is refresh token used for?4 lựa chọn
AUI refresh
BExtend session without re-login
CTheme update
DNavigation reset
Lời giải
Mở trang câu hỏi này →Refresh token được sử dụng để mở rộng phiên hoạt động mà không cần phải đăng nhập lại. Khi bạn đăng nhập vào một ứng dụng, bạn sẽ nhận được một token truy cập và một token refresh. Token truy cập được sử dụng để xác thực các yêu cầu đến server, trong khi token refresh được sử dụng để yêu cầu một token truy cập mới khi token hiện tại đã hết hạn. Điều này giúp bạn tiếp tục sử dụng ứng dụng mà không cần phải đăng nhập lại mỗi khi token truy cập hết hạn. Ngoài ra, sử dụng token refresh còn giúp giảm thiểu số lần yêu cầu đăng nhập, cải thiện trải nghiệm người dùng và tăng cường bảo mật.
5What is a token in authentication systems?4 lựa chọn
AUI key
BTemporary access credential
CDatabase ID
DTheme value
Lời giải
Mở trang câu hỏi này →Trong hệ thống xác thực, một token (hay còn gọi là token truy cập tạm thời) là một chuỗi ký tự được sử dụng để xác thực người dùng. Nó thường được tạo ra khi người dùng thực hiện một hành động xác thực, chẳng hạn như đăng nhập vào hệ thống. Token này sau đó được sử dụng để xác thực người dùng trong các yêu cầu tiếp theo, thay vì phải nhập lại thông tin đăng nhập. Điều này giúp tăng cường bảo mật và giảm thiểu rủi ro bị xâm nhập bởi các cuộc tấn công từ bên ngoài. Token thường có thời hạn sử dụng nhất định và sẽ hết hạn sau một khoảng thời gian nhất định. Khi hết hạn, người dùng sẽ cần phải thực hiện lại hành động xác thực để nhận được một token mới.
A
TrueB
FalseLời giải
Mở trang câu hỏi này →Trong Flutter, 'SplashScreen' thường được sử dụng để xác định tuyến ban đầu dựa trên token phiên hiện có. Khi ứng dụng được khởi động, 'SplashScreen' sẽ được hiển thị trước khi chuyển đến màn hình chính. Trong thời gian này, ứng dụng có thể kiểm tra xem có token phiên hiện có hay không. Nếu có, ứng dụng có thể sử dụng token đó để xác định tuyến ban đầu và chuyển đến màn hình phù hợp. Điều này giúp ứng dụng có thể tự động chuyển đến màn hình mà người dùng đã mở trước đó, mà không cần phải nhập lại thông tin đăng nhập.
7Authentication vs Authorization?4 lựa chọn
AiOS only
BAuthorization means login
CSame
DAuth: who you are; Authorization: what you may do
Lời giải
Mở trang câu hỏi này →Authentication và Authorization là hai khái niệm quan trọng trong bảo mật thông tin. Authentication là quá trình xác thực danh tính của một người dùng, giúp xác định ai đang truy cập vào hệ thống. Authorization là quá trình kiểm soát quyền truy cập vào các tài nguyên hệ thống, giúp xác định những gì người dùng được phép làm. Ví dụ, khi bạn đăng nhập vào một trang web, bạn đã thực hiện quá trình Authentication. Sau đó, bạn có thể thực hiện các hành động như xem trang chủ, đăng bài viết, v.v. Đây là quá trình Authorization. Tóm lại, Authentication giúp xác định ai bạn là, trong khi Authorization giúp xác định những gì bạn được phép làm.
ACosmetic only
BRename the app
CNot needed in debug
DFirebase/Android verify the app — misconfig often breaks sign-in
Lời giải
Mở trang câu hỏi này →SHA (Secure Hash Algorithm) fingerprint là một chuỗi mã hóa được sử dụng để xác thực ứng dụng Android với Google Sign-In. Nó giúp xác định danh tính của ứng dụng và ngăn chặn các cuộc tấn công giả mạo. Khi bạn đăng ký ứng dụng Android với Google Sign-In, bạn cần cung cấp SHA fingerprint để xác thực danh tính của ứng dụng. Nếu SHA fingerprint không được cung cấp hoặc không chính xác, ứng dụng có thể không thể đăng nhập thành công vào Google Sign-In. Điều này thường xảy ra khi cấu hình Firebase hoặc Android không đúng, dẫn đến việc xác thực bị phá vỡ.
AAccess short-lived for API calls; refresh longer to obtain new access
BAccess is never sent over HTTP
CIdentical
DRefresh is web-only
Lời giải
Mở trang câu hỏi này →Access và refresh token thường có sự khác biệt trong thời gian tồn tại và mục đích sử dụng. Access token thường có thời gian tồn tại ngắn hạn, thường chỉ từ vài phút đến vài giờ, và được sử dụng để thực hiện các yêu cầu API. Ngược lại, refresh token có thời gian tồn tại dài hơn, thường từ vài giờ đến vài ngày, và được sử dụng để yêu cầu một access token mới khi access token hiện tại đã hết hạn. Điều này cho phép người dùng tiếp tục sử dụng ứng dụng mà không cần phải đăng nhập lại. Ngoài ra, access token thường được gửi qua HTTP trong mỗi yêu cầu API, trong khi refresh token thường không được gửi qua HTTP.
10How is a Bearer access token usually sent?4 lựa chọn
A`Token: ...`
B`Bearer` is not used in HTTP
C`Authorization: Bearer <token>`
D`Cookie: token=...` is always correct
11Integration of Firebase Google Sign-In requires the configuration of SHA keys in the Firebase project.2 lựa chọn
A
TrueB
FalseLời giải
Mở trang câu hỏi này →Để thực hiện tích hợp Google Sign-In với Firebase, bạn cần cấu hình các khóa SHA trong dự án Firebase. Điều này giúp xác thực và bảo mật thông tin đăng nhập của người dùng. Khi bạn thêm ứng dụng của mình vào Firebase, bạn sẽ được yêu cầu cung cấp khóa SHA để xác thực quyền truy cập. Việc cấu hình khóa SHA này là bước quan trọng để đảm bảo an toàn và bảo mật cho ứng dụng của bạn khi sử dụng Google Sign-In.
12Integration tests validate the entire flow of an application, from login to data retrieval.2 lựa chọn
A
TrueB
FalseLời giải
Mở trang câu hỏi này →Các bài kiểm tra tích hợp xác minh toàn bộ luồng của một ứng dụng, từ đăng nhập đến việc truy xuất dữ liệu. Các bài kiểm tra này giúp đảm bảo rằng ứng dụng hoạt động chính xác và toàn diện, bao gồm cả việc kiểm tra các chức năng liên quan đến dữ liệu và giao diện người dùng. Việc kiểm tra toàn bộ luồng ứng dụng giúp phát hiện ra các lỗi và vấn đề tiềm ẩn, từ đó giúp cải thiện chất lượng và độ tin cậy của ứng dụng.
APayload is usually Base64URL — readable; signature prevents tampering, not hiding payload
BOnly servers can read it
CThere is no payload
DYes, always AES
Lời giải
Mở trang câu hỏi này →JWT (JSON Web Token) là một loại token được sử dụng để xác thực người dùng. Payload của JWT chứa các thông tin về người dùng, chẳng hạn như tên, email, v.v. Tuy nhiên, payload không được mã hóa theo cách bí mật như AES. Thay vào đó, nó được mã hóa bằng Base64URL, một phương thức mã hóa không bí mật. Điều này có nghĩa là bất kỳ ai cũng có thể đọc được payload của JWT, nhưng không thể thay đổi hoặc giả mạo nó mà không bị phát hiện. Signature của JWT được tạo bằng cách sử dụng một thuật toán kĩ thuật số, chẳng hạn như HMAC, và được sử dụng để xác thực tính hợp lệ của payload. Vì vậy, mặc dù payload của JWT có thể đọc được, nhưng signature giúp ngăn chặn việc giả mạo hoặc thay đổi payload.
APost token to social media
BKeep forever
CRemove token/session from storage and navigate to login
DClear UI only
Lời giải
Mở trang câu hỏi này →Khi thực hiện logout, việc xóa bỏ các token được lưu trữ cục bộ là một bước quan trọng để đảm bảo bảo mật và ngăn chặn truy cập trái phép. Việc giữ lại các token có thể khiến cho thông tin người dùng bị lộ và bị lợi dụng bởi kẻ tấn công. Vì vậy, khi logout, chúng ta cần xóa bỏ các token và phiên làm việc khỏi bộ nhớ lưu trữ và chuyển hướng người dùng đến trang đăng nhập. Điều này sẽ giúp đảm bảo rằng người dùng phải đăng nhập lại để tiếp tục sử dụng dịch vụ.
15What is session expiration?4 lựa chọn
ATheme reset
BAutomatic logout after inactivity
CUI timeout
DAPI limit
Lời giải
Mở trang câu hỏi này →Session expiration là một tính năng quan trọng trong các hệ thống bảo mật và quản lý truy cập. Nó cho phép hệ thống tự động thoát người dùng khỏi phiên làm việc sau một khoảng thời gian không hoạt động nhất định. Điều này giúp ngăn chặn các cuộc tấn công từ xa và bảo vệ dữ liệu nhạy cảm khỏi bị truy cập trái phép. Khi session expiration được kích hoạt, hệ thống sẽ tự động thoát người dùng khỏi phiên làm việc sau một khoảng thời gian không hoạt động, chẳng hạn như 15 phút, 30 phút hoặc 1 giờ. Điều này giúp đảm bảo rằng người dùng không thể giữ phiên làm việc mở quá lâu và truy cập vào dữ liệu nhạy cảm mà không được phép.
16Why use **HTTPS** in production?4 lựa chọn
AWeb only
BHTTPS banned on mobile
CSlows the app
DProtects tokens/data in transit against eavesdropping
Lời giải
Mở trang câu hỏi này →HTTPS được sử dụng trong sản xuất vì nhiều lý do quan trọng. Trước hết, nó giúp bảo vệ thông tin người dùng, bao gồm cả token và dữ liệu nhạy cảm, khỏi việc bị nghe trộm (eavesdropping) khi truyền qua internet. Điều này đặc biệt quan trọng khi người dùng truy cập vào các trang web hoặc ứng dụng yêu cầu đăng nhập hoặc gửi thông tin nhạy cảm. Ngoài ra, HTTPS còn giúp ngăn chặn các cuộc tấn công từ bên ngoài, chẳng hạn như tấn công man-in-the-middle (MITM), nơi kẻ tấn công cố gắng giả mạo giao tiếp giữa người dùng và trang web hoặc ứng dụng.
17What happens after successful login?4 lựa chọn
AUser session starts
BApp closes
CTheme changes
DNavigation resets
Lời giải
Mở trang câu hỏi này →Sau khi đăng nhập thành công, hệ thống sẽ tạo một phiên làm việc (session) cho người dùng. Phiên làm việc này sẽ lưu trữ thông tin về người dùng, bao gồm cả quyền truy cập vào các tính năng và dữ liệu. Khi phiên làm việc được tạo, người dùng sẽ có thể thực hiện các hành động trên hệ thống mà không cần phải đăng nhập lại. Điều này giúp người dùng có trải nghiệm mượt mà và thuận tiện hơn khi sử dụng hệ thống.
18What is Flutter primarily used for?4 lựa chọn
ADeveloping server-side applications only
BDesigning databases for mobile apps
CCreating native applications from a single codebase
DBuilding operating systems for mobile devices
Lời giải
Mở trang câu hỏi này →Flutter là một công cụ lập trình đa nền tảng được sử dụng để tạo ra các ứng dụng di động và máy tính bảng. Nó cho phép các nhà phát triển xây dựng các ứng dụng có thể chạy trên nhiều nền tảng khác nhau, bao gồm cả Android và iOS. Flutter sử dụng ngôn ngữ lập trình Dart để tạo ra các ứng dụng, và nó cung cấp một bộ công cụ mạnh mẽ để tạo ra các ứng dụng có giao diện người dùng đẹp và hiệu suất cao. Flutter được sử dụng để tạo ra các ứng dụng di động, bao gồm cả các ứng dụng trò chơi, ứng dụng giải trí và ứng dụng kinh doanh.
19Why is Chapter 13 considered optional (Plus)?4 lựa chọn
AIt manages navigation
BIt replaces core concepts
CIt handles authentication
DApps can work without deep optimization
Lời giải
Mở trang câu hỏi này →Chương 13 được coi là tùy chọn (Plus) vì nó cung cấp các tính năng nâng cao giúp ứng dụng có thể hoạt động mà không cần tối ưu hóa sâu. Điều này cho phép các nhà phát triển tập trung vào việc xây dựng ứng dụng mà không cần lo lắng về việc tối ưu hóa các khía cạnh khác. Tuy nhiên, cần lưu ý rằng các tính năng trong Chương 13 không phải lúc nào cũng cần thiết và có thể được bỏ qua nếu không cần thiết. Điều quan trọng là phải hiểu rõ về các yêu cầu của ứng dụng và quyết định có nên sử dụng các tính năng trong Chương 13 hay không.
AUI quality
BProtect user data
CReduce code
DImprove speed
Lời giải
Mở trang câu hỏi này →Chức năng xác thực an toàn trong ứng dụng di động là rất quan trọng vì nó giúp bảo vệ thông tin cá nhân và dữ liệu của người dùng khỏi bị truy cập trái phép. Khi người dùng đăng nhập vào ứng dụng, họ sẽ cung cấp thông tin đăng nhập của mình, bao gồm tên người dùng và mật khẩu. Nếu ứng dụng không có chức năng xác thực an toàn, kẻ tấn công có thể dễ dàng truy cập vào thông tin đăng nhập của người dùng và sử dụng nó để thực hiện các hành động trái phép. Điều này có thể dẫn đến việc lộ thông tin cá nhân, trộm cắp tài khoản ngân hàng hoặc thậm chí là việc truy cập vào các hệ thống quan trọng. Vì vậy, chức năng xác thực an toàn là rất quan trọng để bảo vệ người dùng khỏi các mối đe dọa này.