Chủ đề của Server-Side development with NodeJS, Express, and MongoDB

SDN302 Chương 8 - Xác thực người dùng và bảo mật

Chương 8 môn SDN302 bàn về xác thực người dùng và bảo mật: phân biệt xác thực với phân quyền, phân quyền theo vai trò, băm mật khẩu bằng bcrypt cùng vai trò của salt, mã hoá cơ sở dữ liệu, session và cookie trong Express với req.session và middleware cookie-parser, thư viện Passport.js cùng hàm serializeUser, xác thực dựa trên token với JSON Web Token và gói jsonwebtoken, phân biệt Passport.js với JWT, mã trạng thái 401 Unauthorized, tấn công CSRF, Single Sign-On và chống dò mật khẩu bằng express-rate-limit. Trọn bộ câu hỏi trắc nghiệm có giải thích.

Xem danh sách câu hỏi20 câu hỏi100% có giải thích

Bắt đầu bằng Chế độ học nếu bạn muốn đáp án và giải thích hiện ngay sau mỗi câu — không bấm giờ, dừng lúc nào cũng được. Chọn Thi thử khi muốn biết mình đang ở đâu: có bấm giờ, chấm điểm ở cuối, và giải thích chỉ mở sau khi nộp.

Học ngân hàng câu hỏi của chủ đề

Luyện tập theo chủ đề này

20Câu hỏi hiện có

Câu hỏi của chủ đề

20/20 câuHết danh sách
1What is the purpose of role-based authorization?4 lựa chọnTrung bình67% trả lời đúng
ATo authenticate users based on their role in the organization.
BTo restrict access to certain features or resources in a web application based on a user's role in the organization.
CTo encrypt sensitive data transmitted between a client and server.
DTo prevent Cross-Site Request Forgery (CSRF) attacks.
Lời giải
Mục đích của việc xác thực quyền truy cập dựa trên vai trò (role-based authorization) là để hạn chế truy cập vào các tính năng hoặc tài nguyên trong một ứng dụng web dựa trên vai trò của người dùng trong tổ chức. Điều này giúp đảm bảo rằng người dùng chỉ có thể truy cập vào các tính năng hoặc tài nguyên mà họ được phép, giúp tăng cường bảo mật cho ứng dụng web. Ví dụ, một người dùng có vai trò là quản trị viên có thể truy cập vào các tính năng quản trị, trong khi người dùng có vai trò là người dùng thông thường chỉ có thể truy cập vào các tính năng dành cho người dùng thông thường. Việc xác thực quyền truy cập dựa trên vai trò giúp ngăn chặn người dùng không được phép truy cập vào các tính năng hoặc tài nguyên nhạy cảm.
Mở trang câu hỏi này →
2What is the purpose of the "Authentication" middleware?4 lựa chọnTrung bình40% trả lời đúng
ATo validate that the anti-forgery token is present and valid in a form submission.
BTo encrypt sensitive data in web forms.
CTo handle user authentication and establish an identity for the user.
DTo prevent Cross-Site Request Forgery (CSRF) attacks.
Lời giải
Middleware "Authentication" được sử dụng để xác thực người dùng và thiết lập danh tính cho họ. Nó giúp xác minh rằng người dùng đang cố gắng truy cập vào hệ thống là người dùng hợp lệ và có quyền truy cập vào các tài nguyên cụ thể. Quá trình xác thực này thường bao gồm việc kiểm tra tên người dùng và mật khẩu, sau đó xác thực thông tin này với cơ sở dữ liệu hoặc hệ thống xác thực khác. Nếu thông tin xác thực hợp lệ, người dùng sẽ được cấp quyền truy cập vào hệ thống và được thiết lập danh tính. Điều này giúp đảm bảo rằng chỉ những người dùng được phép mới có thể truy cập vào các tài nguyên nhạy cảm của hệ thống.
Mở trang câu hỏi này →
A"username&password"
B"username:password"
C"username_password"
D"username@password"
Lời giải
Trong Authorization header, Username và password được kết hợp thành một chuỗi theo định dạng "username:password". Điều này được thực hiện bằng cách sử dụng dấu hai chấm (:) để phân cách giữa username và password. Ví dụ, nếu username là 'tài khoản' và password là 'mật khẩu', thì chuỗi kết hợp sẽ là 'tài khoản:mật khẩu'. Định dạng này được sử dụng để xác thực người dùng và đảm bảo rằng thông tin được truyền đi an toàn.
Mở trang câu hỏi này →
ATo add flavor to the hashed password.
BTo store the password in plain text in the database.
CTo add random data to the password before hashing, making it more difficult for attackers to use precomputed lookup tables to crack the hashed password.
DTo add a secret key to the password before hashing, making it more difficult for attackers to crack the hashed password.
Lời giải
Mục đích của muối (salt) trong quá trình mã hóa mật khẩu là để thêm dữ liệu ngẫu nhiên vào mật khẩu trước khi mã hóa, làm cho nó khó hơn cho kẻ tấn công sử dụng các bảng tra cứu trước (precomputed lookup tables) để cracking mật khẩu đã mã hóa. Điều này giúp tăng cường bảo mật cho mật khẩu của người dùng. Khi muối được thêm vào, mỗi lần mã hóa sẽ tạo ra một kết quả khác nhau, ngay cả khi mật khẩu ban đầu là giống nhau. Điều này làm cho việc sử dụng các bảng tra cứu trước trở nên vô ích, vì chúng không thể được sử dụng để cracking mật khẩu đã mã hóa.
Mở trang câu hỏi này →
5What is database encryption?4 lựa chọnDễ
AThe process of converting data into a secure format that can only be read with a decryption key.
BThe process of backing up data.
CThe process of normalizing data.
DThe process of querying data.
Lời giải
Tính năng mã hóa cơ sở dữ liệu là quá trình chuyển đổi dữ liệu thành một định dạng an toàn, chỉ có thể đọc được bằng cách sử dụng khóa giải mã. Điều này giúp bảo vệ dữ liệu khỏi việc truy cập trái phép hoặc bị đánh cắp. Mã hóa cơ sở dữ liệu là một biện pháp quan trọng để bảo vệ dữ liệu nhạy cảm, chẳng hạn như thông tin cá nhân, thông tin tài chính và thông tin kinh doanh. Quá trình mã hóa cơ sở dữ liệu thường được thực hiện bằng cách sử dụng các thuật toán mã hóa mạnh mẽ và khóa giải mã được bảo vệ. Điều này giúp đảm bảo rằng dữ liệu chỉ có thể được truy cập bởi những người có quyền truy cập hợp lệ và được ủy quyền.
Mở trang câu hỏi này →
APassport.js is used for session-based authentication, while JWT is for token-based authentication
BPassport.js is only used in front-end apps, while JWT is back-end only
CPassport.js is faster than JWT
DThey serve the same purpose
Lời giải
Passport.js và JWT là hai phương pháp xác thực khác nhau trong việc quản lý quyền truy cập vào ứng dụng. Passport.js được sử dụng cho xác thực dựa trên phiên (session-based authentication), trong khi JWT (JSON Web Token) được sử dụng cho xác thực dựa trên token (token-based authentication). Khi sử dụng Passport.js, ứng dụng sẽ lưu trữ thông tin xác thực của người dùng trong phiên, trong khi JWT lưu trữ thông tin xác thực trong một token được gửi đến người dùng và được sử dụng để xác thực cho mỗi yêu cầu. Điều này giúp giảm thiểu việc lưu trữ thông tin xác thực trên máy chủ và tăng cường bảo mật.
Mở trang câu hỏi này →
AEncrypt user data
BAuthenticate and authorize users
CPerform database operations
DSend push notifications
Lời giải
JWT (JSON Web Token) là một loại token được sử dụng để xác thực và ủy quyền người dùng. Mục đích chính của JWT là cung cấp một cách bảo mật và an toàn để xác thực người dùng và cấp quyền truy cập vào các tài nguyên. JWT sử dụng một cơ chế ký số để đảm bảo tính toàn vẹn và bảo mật của thông tin được chứa trong token. Khi một người dùng đăng nhập vào hệ thống, hệ thống sẽ tạo ra một JWT chứa thông tin về người dùng và gửi nó về cho người dùng. Người dùng sẽ sử dụng JWT này để truy cập vào các tài nguyên được phép. JWT được sử dụng rộng rãi trong các ứng dụng web và di động để cung cấp một cách bảo mật và an toàn cho người dùng.
Mở trang câu hỏi này →
AHTTP
BOAuth
CFTP
DSMTP
Lời giải
OAuth là một giao thức phổ biến được sử dụng cho việc xác thực trong các ứng dụng web. Nó cho phép người dùng cấp quyền cho các ứng dụng khác truy cập vào tài khoản của họ mà không cần phải nhập lại mật khẩu. OAuth hoạt động bằng cách cung cấp một token tạm thời cho ứng dụng, cho phép nó truy cập vào tài khoản người dùng mà không cần biết mật khẩu thực sự. Đ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 phạm thông tin cá nhân. Ngoài ra, OAuth cũng cho phép người dùng quản lý quyền truy cập của mình một cách linh hoạt, giúp họ có thể dễ dàng revoke quyền truy cập của ứng dụng nào đó nếu cần.
Mở trang câu hỏi này →
Apassport.authenticate()
Bpassport.serializeUser()
Cpassport.session()
Dpassport.login()
Lời giải
Để cấu hình Passport serialize thông tin người dùng vào phiên, chúng ta cần sử dụng hàm passport.serializeUser(). Hàm này được sử dụng để chuyển đổi thông tin người dùng thành một dạng có thể lưu trữ trong phiên. Thông thường, thông tin người dùng được chuyển đổi thành một chuỗi ID người dùng. Sau đó, khi người dùng đăng nhập, Passport sẽ lưu trữ ID người dùng vào phiên và sử dụng nó để xác thực người dùng trong các yêu cầu tiếp theo. Hàm passport.serializeUser() là một phần quan trọng trong quá trình xác thực người dùng bằng Passport.
Mở trang câu hỏi này →
10What is the primary purpose of Single Sign-On (SSO)?4 lựa chọnTrung bình67% trả lời đúng
ATo allow users to access multiple applications with a single login
BTo improve password security by requiring complex passwords
CTo provide multi-factor authentication
DTo encrypt user data during transmission
Lời giải
Single Sign-On (SSO) là một tính năng cho phép người dùng đăng nhập vào nhiều ứng dụng khác nhau một lần, thay vì phải đăng nhập vào từng ứng dụng riêng biệt. Điều này giúp giảm thiểu sự phức tạp và tăng cường trải nghiệm người dùng. Khi sử dụng SSO, người dùng chỉ cần nhớ một tài khoản và mật khẩu duy nhất, sau đó họ có thể truy cập vào tất cả các ứng dụng được kết nối mà không cần phải đăng nhập lại. Điều này đặc biệt hữu ích trong các môi trường doanh nghiệp hoặc tổ chức lớn, nơi người dùng cần truy cập vào nhiều ứng dụng khác nhau để thực hiện công việc của mình.
Mở trang câu hỏi này →
Acookies
Bcookies-parser
Ccookie-body
Dcookie-value
Lời giải
Trong Express server, cookies được phân tích bằng cách sử dụng middleware nào?
Mở trang câu hỏi này →
12What does JWT stand for?4 lựa chọnDễ
AJavaScript Web Tool
BJSON Web Token
CJava Web Tracker
DJSON Wide Transfer
Lời giải
JWT (JSON Web Token) là một loại token được sử dụng để xác thực và truyền tải thông tin giữa các ứng dụng web. Nó được tạo ra bằng cách sử dụng một khóa bí mật và được ký bằng một thuật toán mật mã. JWT thường được sử dụng trong các ứng dụng web yêu cầu xác thực và bảo mật cao. Ví dụ, khi bạn đăng nhập vào một ứng dụng web, ứng dụng đó sẽ tạo ra một JWT và gửi nó đến máy chủ để xác thực. Máy chủ sẽ kiểm tra JWT và nếu nó hợp lệ, sẽ trả về thông tin cần thiết cho ứng dụng web. JWT có thể được sử dụng để truyền tải thông tin như tên người dùng, email, v.v. Nó giúp ứng dụng web xác thực và bảo mật thông tin một cách hiệu quả.
Mở trang câu hỏi này →
13Which HTTP status code indicates "Unauthorized"?4 lựa chọnTrung bình
A200
B401
C403
D404
Lời giải
Trạng thái HTTP 401 là một mã trạng thái HTTP được sử dụng để chỉ định rằng một yêu cầu đã được gửi đến một nguồn tài nguyên mà người dùng không có quyền truy cập. Điều này có thể xảy ra khi người dùng nhập sai thông tin đăng nhập hoặc khi người dùng không có quyền truy cập vào tài nguyên đó. Mã trạng thái này thường được sử dụng trong các ứng dụng yêu cầu xác thực để chỉ định rằng người dùng không được phép truy cập vào tài nguyên đó. Ví dụ, khi người dùng nhập sai mật khẩu hoặc tên người dùng, ứng dụng có thể trả về mã trạng thái 401 để chỉ định rằng người dùng không được phép truy cập vào tài nguyên đó.
Mở trang câu hỏi này →
AStore as plain text
BHash and salt before storing
CUse Base64 encoding
DEncrypt using SSL
Lời giải
Để bảo mật mật khẩu người dùng trong cơ sở dữ liệu, một thói quen tốt là sử dụng phương pháp hashing và muối trước khi lưu trữ. Hashing là quá trình biến đổi mật khẩu thành một chuỗi ký tự ngẫu nhiên, không thể khôi phục lại mật khẩu ban đầu. Muối (salt) là một chuỗi ký tự ngẫu nhiên được thêm vào mật khẩu trước khi hashing, giúp ngăn chặn các cuộc tấn công sử dụng các công cụ cracking mật khẩu. Phương pháp này giúp bảo vệ cơ sở dữ liệu khỏi các cuộc tấn công từ xa và bảo vệ thông tin người dùng. Ngoài ra, việc sử dụng hashing và muối cũng giúp giảm thiểu rủi ro bị lộ mật khẩu trong trường hợp cơ sở dữ liệu bị xâm phạm.
Mở trang câu hỏi này →
15What is CSRF in web security?4 lựa chọnDễ
AA type of data encryption
BCross-Site Request Forgery
CA way to secure tokens
DCross-Service Response Failure
Lời giải
CSRF (Cross-Site Request Forgery) là một loại tấn công web phổ biến. Nó xảy ra khi một kẻ tấn công lừa người dùng thực hiện một yêu cầu trên một trang web mà người dùng tin tưởng, mà không có ý thức. Kẻ tấn công thường sử dụng các kỹ thuật như gửi email hoặc tạo trang web giả mạo để lừa người dùng nhấp vào một liên kết hoặc gửi một yêu cầu. Khi người dùng thực hiện yêu cầu đó, kẻ tấn công có thể thực hiện các hành động không mong muốn trên tài khoản người dùng, chẳng hạn như gửi email hoặc thực hiện giao dịch tài chính.
Mở trang câu hỏi này →
16How would you access session data in an Express route?4 lựa chọnDễ100% trả lời đúng
Areq.session
Breq.cookie
Creq.token
Dreq.data
Lời giải
Để truy cập dữ liệu phiên (session data) trong một route của Express, bạn cần sử dụng thuộc tính req.session. req.session là một đối tượng được sử dụng để lưu trữ dữ liệu phiên, cho phép bạn lưu trữ và truy xuất dữ liệu trong suốt quá trình sử dụng ứng dụng. Khi bạn muốn truy cập dữ liệu phiên, bạn có thể sử dụng req.session như một đối tượng có thể được đọc và viết. Ví dụ, bạn có thể sử dụng req.session để lưu trữ thông tin người dùng, như tên, email, v.v. và sau đó sử dụng nó trong các route khác để thực hiện các hành động dựa trên dữ liệu đó. req.cookie và req.token thường được sử dụng để lưu trữ dữ liệu cookie và token, nhưng không phải là phương pháp chính để truy cập dữ liệu phiên. req.data không phải là thuộc tính tồn tại trong Express.
Mở trang câu hỏi này →
17What is the purpose of Passport JWT in security?4 lựa chọnTrung bình67% trả lời đúng
ATo handle stateless auth with tokens
BTo manage sessions
CTo upload files securely
DTo enable CORS
Lời giải
Passport JWT (JSON Web Token) là một công nghệ được sử dụng trong bảo mật để xử lý xác thực người dùng mà không cần lưu trữ trạng thái. Nó cho phép tạo ra một token chứa thông tin người dùng sau khi họ đã đăng nhập thành công. Token này sẽ được gửi đến máy chủ trong mỗi yêu cầu sau đó, giúp máy chủ xác thực người dùng mà không cần lưu trữ thông tin trạng thái. Điều này giúp tăng hiệu suất và giảm thiểu khả năng bị tấn công bởi các kỹ thuật như session fixation attack.
Mở trang câu hỏi này →
18Which Express.js middleware can be used to prevent brute-force login attacks?4 lựa chọnDễ100% trả lời đúng
Abody-parser
Bexpress-rate-limit
Ccors
Dhelmet
Lời giải
Để ngăn chặn các cuộc tấn công brute-force khi đăng nhập, bạn có thể sử dụng middleware Express.js là express-rate-limit. Middleware này cho phép bạn giới hạn số lượng yêu cầu từ một địa chỉ IP trong một khoảng thời gian nhất định. Điều này giúp ngăn chặn các cuộc tấn công brute-force bằng cách giới hạn số lần thử đăng nhập từ một địa chỉ IP trong một khoảng thời gian nhất định. Ví dụ, bạn có thể cấu hình express-rate-limit để giới hạn 5 yêu cầu đăng nhập từ một địa chỉ IP trong 1 phút. Nếu địa chỉ IP đó vượt quá giới hạn này, nó sẽ bị chặn trong một khoảng thời gian nhất định. Điều này giúp bảo vệ hệ thống khỏi các cuộc tấn công brute-force và đảm bảo an toàn cho người dùng.
Mở trang câu hỏi này →
19Which of the following is used to manage user sessions in Express?4 lựa chọnTrung bình67% trả lời đúng
APassport.js
BCookie-parser
Cbody-parser
DSession-store
Lời giải
Để quản lý các phiên làm việc của người dùng trong Express, chúng ta có thể sử dụng Passport.js. Passport.js là một thư viện phổ biến được sử dụng để thực hiện xác thực và quản lý phiên làm việc của người dùng. Nó cho phép chúng ta sử dụng nhiều phương thức xác thực khác nhau như xác thực bằng tài khoản, xác thực bằng Facebook, Google, v.v. Ngoài ra, Passport.js cũng cung cấp các tính năng như lưu trữ thông tin người dùng, kiểm soát quyền truy cập, v.v. Nói chung, Passport.js là một lựa chọn phổ biến và mạnh mẽ để quản lý phiên làm việc của người dùng trong Express.
Mở trang câu hỏi này →
20Which package is commonly used for JWT authentication in Node.js?4 lựa chọnTrung bình67% trả lời đúng
Ajwt-node
Bjsonwebtoken
Cauth-token
Dpassport-jwt
Lời giải
Để xác thực JWT (JSON Web Token) trong Node.js, bạn thường sử dụng gói thư viện jsonwebtoken. Gói này cung cấp các phương thức cần thiết để tạo, kiểm tra và giải mã JWT. Nó hỗ trợ các tính năng như tạo token dựa trên thông tin người dùng, kiểm tra token và xác thực người dùng. jsonwebtoken cũng cung cấp các phương thức để tạo token có thời hạn và có thể được sử dụng trong các ứng dụng Node.js.
Mở trang câu hỏi này →

Đề có câu hỏi của chủ đề này

2 đề chứa ít nhất một câu thuộc chủ đề — mở đề để làm cả bộ, không chỉ từng câu.