Series Authentication: Phần 1: Basic Authentication - Cái Đơn Giản Nhưng Hiệu Quả

folder Kiến thức công nghệ
today 07/10/2024 18:28
Basic Authentication – cách bảo mật đơn giản nhất trong lập trình, dễ như ăn cơm sườn, nhưng nếu không biết sử dụng đúng cách thì cũng dễ bị “ăn hành”. Trong bài này, chúng ta sẽ cùng nhau tìm hiểu về cách thức hoạt động của Basic Auth, điểm mạnh và điểm yếu của nó, kèm theo một chút minh họa hài hước để giúp bạn nhớ lâu hơn!
series-authentication:-phan-1:-basic-authentication-cai-don-gian-nhung-hieu-qua

1. Basic Authentication Là Gì?

Basic Authentication, hay còn gọi là "Basic Auth", giống như chìa khóa mở cửa của một căn nhà (mặc dù nó chỉ là cái chìa khóa tạm bợ). Nó yêu cầu người dùng nhập vào username và password, sau đó thông tin này sẽ được mã hóa bằng Base64 trước khi được gửi đến server.

Chú ý: Mã hóa bằng Base64 không thực sự bảo mật lắm đâu! Bạn có thể tưởng tượng Base64 giống như viết password của bạn lên một tờ giấy, gấp lại, rồi đưa cho ai đó. Họ chỉ cần mở giấy ra là thấy rõ ngay, nên nếu không có lớp bảo mật như HTTPS thì đừng mong an toàn!

2. Cách Hoạt Động

Quá trình này diễn ra như sau:

  1. Người dùng nhập username và password.
  2. Trình duyệt mã hóa username và password bằng Base64 (thật ra không mạnh lắm, đừng quá tin tưởng vào nó).
  3. Thông tin này được gửi đi trong header của request HTTP.
  4. Server kiểm tra thông tin đăng nhập: Nếu đúng thì cho vào, nếu sai thì "quay xe" về lại màn hình đăng nhập thôi!

Bạn có thể hình dung Basic Auth như một người bảo vệ ở cửa, mỗi lần ai đó vào nhà, bạn đưa thẻ nhân viên (chính là username và password), bảo vệ nhìn qua thẻ, thấy đúng thì cho vào. Nhưng nếu bạn đi ra ngoài mua trà sữa mà quên khóa cửa (sử dụng HTTP thay vì HTTPS), thì có thể kẻ trộm sẽ tiện đường "mượn" luôn thông tin của bạn và quay lại vào nhà sau khi bạn đi mất!

3. Lợi Ích Của Basic Authentication

Mặc dù Basic Auth có vẻ "thô sơ", nhưng vẫn có những ưu điểm nhất định, nhất là khi sử dụng đúng cách:

  • Dễ cài đặt: Chỉ cần vài dòng mã là xong, không cần phức tạp hóa vấn đề.
  • Không cần duy trì phiên (session): Không phải lo lắng về việc lưu trữ thông tin phiên hay xử lý cookie, làm cuộc sống đơn giản hơn.
  • Hữu dụng cho API đơn giản: Trong các API đơn giản, không có yêu cầu bảo mật cao, Basic Auth là một lựa chọn nhanh chóng và tiện lợi.

4. Hạn Chế Của Basic Authentication

Tuy nhiên, với sức mạnh to lớn đi kèm trách nhiệm nặng nề – Basic Auth có rất nhiều điểm yếu:

  • Không bảo mật khi dùng HTTP: Khi sử dụng qua HTTP (không mã hóa), thông tin đăng nhập của bạn có thể bị “nghe lén” bởi bất kỳ ai. Ví dụ, một kẻ xấu có thể đứng ở quán cà phê và bắt chước mọi yêu cầu của bạn.
  • Không hỗ trợ logout: Không có khái niệm "phiên" trong Basic Auth, nên bạn không thể đăng xuất theo cách thông thường (trừ khi bạn đóng hẳn trình duyệt).
  • Yếu với hệ thống lớn: Trong các ứng dụng phức tạp hoặc có nhiều người dùng, Basic Auth khó có thể đảm bảo bảo mật tốt được.

Basic Auth giống như một lớp học mà mọi người đều biết mật khẩu của lớp là "123456". Bạn có thể sử dụng mật khẩu đó để vào lớp mỗi ngày, nhưng nếu ai đó biết được và phá cửa vào lớp thì cả lớp sẽ bị "tổn thương tinh thần" nặng nề!

5. Triển Khai Basic Authentication

Hãy cùng xem qua một ví dụ về cách triển khai Basic Auth trong một ứng dụng web đơn giản. Dưới đây là cách sử dụng Basic Auth trong một ứng dụng Express.js:

Bài viết cùng chuyên mục

hatonet

Hướng dẫn cài và sử dụng vue-object-to-formdata cho dự án nuxtjs

today 11/12/2024 22:15
vue-object-to-formdata là một thư viện JavaScript được thiết kế để chuyển đổi một đối tượng JavaScript (Object) thành đối tượng FormData. Đây là một đối tượng có thể dễ dàng sử dụng trong các yêu cầu HTTP để gửi dữ liệu, đặc biệt là khi bạn cần gửi dữ liệu như là một phần của biểu mẫu (form), ví dụ: khi upload file hoặc gửi dữ liệu dưới dạng multipart/form-data.
Xem thêm arrow_right_alt
hatonet

Hướng dẫn cài đặt và sử dụng v-tooltip trong project nuxt js

today 04/12/2024 21:34
v-tooltip là một thư viện Vue.js nhẹ, dễ sử dụng, giúp tạo ra các tooltip (hộp thông báo khi người dùng di chuột qua một phần tử) trong các ứng dụng Vue. Tooltip là một yếu tố giao diện người dùng (UI) thông báo hoặc giải thích ngắn gọn về một đối tượng khi người dùng hover (di chuột) hoặc focus vào phần tử đó.
Xem thêm arrow_right_alt
hatonet

Hướng dẫn cài đặt và sử dụng thư viện Elementjs nuxtjs

today 28/11/2024 23:14
Thư viện Element UI là một bộ thư viện giao diện người dùng mạnh mẽ, cung cấp nhiều thành phần (components) tùy chỉnh sẵn, giúp bạn xây dựng giao diện ứng dụng dễ dàng và nhanh chóng. Đối với Nuxt.js , bạn có thể tích hợp và sử dụng Element UI một cách đơn giản. Dưới đây là hướng dẫn từng bước.
Xem thêm arrow_right_alt

Việc làm tại Hatonet

Actively collaborate with team leads to develop a cohesive vision for each Agent that ensures audience resonance, and successful integration with the existing cast through personality, visual aesthetics, and gameplay Lead, manage, and mentor a high performing, healthy, and collaborative concept art team Work with production to ensure your team’s timely and successful delivery of products Maintain and contribute to artifacts that inform, align, and empower teams to successfully create character concept art in the VALORANT style

  • GWS
  • Trưởng phòng IT
Onsite
vietnam_flag