Get in touch
or send us a question?
CONTACT

MỖI LẦN VÀO BLOG LÀ 1 LẦN TÔI STRESS

MỖI LẦN VÀO BLOG LÀ 1 LẦN STRESS. DO ĐÚNG MK CŨNG PHẢI CÀI LẠI NHIỀU LẦN.

VẬY HIỆN TẠI CÓ NHỮNG Phương Pháp Xác Thực Người Dùng NÀO VỪA AN TOÀN BẢO MẬT VỪA TIỆN LỢI KHÔNG?

Authentication vs Authorization

  • Authentication hay quyền xác thực người dùng, là quá trình xác minh thông tin đăng nhập của một người dùng hoặc thiết bị cố gắng truy cập vào một hệ thống
  • Authorization hay uỷ quyền, là quá trình xác minh xem người dùng hoặc thiết bị có được phép thực hiện các tác vụ nhất định trên hệ thống nhất định hay không.

Hiểu đơn giản

  • Authentication là câu hỏi Bạn Là Ai ?
  • Authorization là câu hỏi Bạn có thể làm gì ?

Dễ dàng thấy rằng authentication sẽ luôn diễn ra trước authorization. Tức là phải xác định được danh tính của bạn trước khi thực hiện uỷ quyền. Vậy với các ứng dụng web, ta có những phương thức xác nhận danh tính hay uỷ quyền nào.

HTTP/HTTPS

Để hiểu về cách xác định danh tính với web thì trước tiên phải hiểu giao thức mà các trang web đang dùng. Ở đây chúng là HTTP hay HTTPS, sự khác biệt của hai giao thức này nằm ở việc dữ liệu của HTTPS được bảo mật, tuy nhiên cả hai đều thực hiện request/response giữa client và server một cách độc lập. Tức là khi client thực hiện một request đến server (ở đây có thể là một HTTP POST để đăng ký hay đăng nhập). Server thực hiện tạo tài khoản ở cơ sở dữ liệu sau đấy gửi về response là HTTP Status 200 OK. Tuy nhiên khi đến câu lệnh request tiếp theo thì server không thể nhận biết được, client gửi request này có phải là client trước đó hay không.

Ví dụ ở một trang blog mà người dùng tạo tài khoản sau đấy tiến hành đăng bài, thì server sẽ không xác định được request tạo tài khoản trước đó, và request tạo bài viết hiện tại có phải cùng một người không.

Để giải quyết vấn đề này, HTTP tích hợp xác thực vào trong phần header của mỗi request.

"Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=" your-website.com

Các thông tin đăng nhập của người dùng sẽ được nối lại với nhau và mã hoá (ở đây chính là đoạn dXNlcm5hbWU6cGFzc3dvcmQ), phương pháp mã hoá được dùng ở đây là base64.

Hoạt động

  1. Phía client thực hiện yêu cầu truy cập một tài nguyên bị hạn chế.
  2. Server gửi về HTTP 401 Unauthorized với tiêu đề WWW-Authenticate có giá trị là Basic.
  3. Sau đấy client sẽ mã hoá username và password rồi request về server.
  4. Khi server xác nhận được danh tính người dùng, thì với mỗi request chúng sẽ được thêm phần Authorization: Basic dcdvcmQ= vào.

Ưu điểm

  • Không mất nhiều thời gian, hoạt động nhanh.
  • Dễ triển khai.
  • Có thể thực hiện trên mọi trình duyệt.

Khuyết điểm

  • Phương pháp mã hoá base64 có thể bị giải mã dễ dàng. Vì phần username và password là thông tin cần cho đăng nhập, nếu nó bị tấn công và giải mã thì người dùng sẽ mất hoàn toàn tài khoản của mình.
  • Phải xác thực danh tính với mỗi request.
  • Người dùng chỉ có thể đăng xuất bằng cách đăng nhập thông tin không hợp lệ.