CYBERSOFT
Đăng nhập

Kiểm thử phân quyền (Authorization) cơ bản cho người mới: từ ma trận quyền tới leo thang đặc quyền (có trắc nghiệm)

Chuyên công nghệTMĐTNền tảngNgười mớiChuẩn SEO
🗓 1 tháng trước19 phút đọc·👁 683 lượt xem👤 168 người đọc

Bài cho người mới: học kiểm thử phân quyền qua app TMĐT ShopEasy. Phân biệt authentication vs authorization, ma trận quyền theo vai trò (khách/thành viên/admin/nhân viên kho), truy cập URL không phép, vì sao ẩn nút chưa đủ, thao tác vượt quyền qua API, leo thang đặc quyền cơ bản, nhiều mockup giao diện, FAQ và trắc nghiệm 5 câu. Chuẩn SEO, dẫn về khóa Tester CyberSoft.

1. Tóm tắt nhanh & màn hình bạn sẽ test

⭐ TL;DR — Kiểm thử phân quyền (authorization testing) là việc xác nhận mỗi vai trò (khách, thành viên, nhân viên kho, admin) chỉ làm được đúng những gì họ được phép, không hơn không kém — khác với kiểm thử xác thực (authentication) vốn chỉ xác nhận 'bạn là ai'. Bài này bám app TMĐT ShopEasy: bạn học ma trận quyền theo vai trò, cách thử truy cập URL không được phép, vì sao ẩn nút trên giao diện chưa đủ, và cách phát hiện leo thang đặc quyền qua API. Nhiều hình minh hoạ và trắc nghiệm cuối bài.

Chào bạn mới! Bạn đã biết đăng nhập đúng tài khoản là 'xác thực' (authentication). Nhưng đăng nhập được rồi không có nghĩa là làm gì cũng được — đó là lúc 'phân quyền' (authorization) vào cuộc. Trên ShopEasy, một Thành viên đăng nhập đúng vẫn không được phép vào trang Quản trị; một Nhân viên kho đăng nhập đúng cũng không được phép xóa đơn hàng của khách. Kiểm thử phân quyền chính là kỹ năng đóng vai từng nhóm người dùng để xác nhận ranh giới đó được giữ đúng, ở cả giao diện lẫn API phía sau.

Ma trận quyền theo vai trò (ShopEasy) Vai tròXem sản phẩmĐặt hàngXem đơn của mìnhCập nhật tồn khoQuản lý người dùngKhách (chưa đăng nhập)Thành viênNhân viên khoAdmin✓ (tất cả)Mỗi ô là 1 ca kiểm thử: vai trò X có được phép làm Y không?
Ma trận quyền theo vai trò trên ShopEasy: khách, thành viên, nhân viên kho, admin
📖 Authorization: quá trình xác định một người dùng đã xác thực (đã đăng nhập) được phép thực hiện hành động hoặc xem dữ liệu nào, dựa trên vai trò/quyền của họ.

2. Authentication vs Authorization: đừng nhầm hai khái niệm

Rất nhiều người mới nhầm hai khái niệm này vì chúng hay đi cùng nhau và đều liên quan tới 'quyền truy cập'. Cách phân biệt dễ nhớ nhất: Authentication trả lời 'bạn là ai' (identity), còn Authorization trả lời 'bạn được làm gì' (permission). Một hệ thống có thể xác thực rất tốt (chặn được mật khẩu sai, hỗ trợ OTP) nhưng vẫn có lỗ hổng phân quyền nghiêm trọng nếu không kiểm tra vai trò ở từng hành động.

Authentication (Xác thực) vs Authorization (Phân quyền) Tiêu chíAuthenticationAuthorizationCâu hỏi trả lờiBạn LÀ AI?Bạn ĐƯỢC LÀM GÌ?Diễn ra khi nàoLúc đăng nhậpMỗi lần thao tác, sau khi đã đăng nhậpVí dụ ShopEasyNhập đúng email + mật khẩu để vào tài khoảnThành viên bị chặn khi cố vào trang AdminLỗi thường gặpĐăng nhập sai vẫn vào được tài khoảnĐăng nhập đúng nhưng làm được việc không thuộc vai trò
Bảng so sánh Authentication (Xác thực) và Authorization (Phân quyền), minh hoạ trên ShopEasy

Trong một buổi kiểm thử thực tế, bạn cần tách rõ hai bộ ca kiểm thử: bộ ca xác thực (đăng nhập sai mật khẩu, quên mật khẩu, khóa tài khoản sau nhiều lần sai) và bộ ca phân quyền (vai trò X có được làm Y không). Gộp lẫn hai loại này rất dễ khiến bạn báo cáo sai loại lỗi, hoặc tệ hơn là bỏ sót hẳn một nhóm ca kiểm thử quan trọng.

📖 Authentication: quá trình xác nhận danh tính người dùng (ví dụ đăng nhập bằng email + mật khẩu, hoặc OTP), trả lời câu hỏi 'bạn là ai'.

3. Vì sao người mới cần thạo kiểm thử phân quyền

Lỗi phân quyền là một trong những nhóm lỗi NGUY HIỂM NHẤT vì nó thường không hiện ra khi bạn chỉ test theo đúng vai trò được giao. Một tester chỉ đăng nhập bằng tài khoản Admin để test sẽ không bao giờ thấy được rằng Thành viên thường cũng vào được trang Quản trị nếu gõ đúng URL. Vì vậy, kiểm thử phân quyền đòi hỏi bạn phải chủ động đổi vai — không chỉ test 'đúng vai trò của mình' mà còn test 'vai trò khác có lọt qua được không'.

Đây cũng là kỹ năng rất được đánh giá cao khi phỏng vấn vị trí Tester, vì nó cho thấy bạn hiểu ứng dụng ở tầng bảo mật cơ bản, không chỉ dừng ở giao diện đẹp/xấu. Câu hỏi phỏng vấn phổ biến: 'Làm sao bạn kiểm thử để chắc chắn người dùng A không xem được dữ liệu của người dùng B?' — trả lời được bằng ví dụ cụ thể (đổi ID trên URL, gọi API bằng token khác) cho thấy tư duy kiểm thử phân quyền vững chắc.

Và quan trọng hơn cả: lỗ hổng phân quyền chính là một trong những nguyên nhân hàng đầu gây rò rỉ dữ liệu và thất thoát tiền bạc trong thực tế — như nhân viên kho xóa được đơn hàng của khách, hoặc thành viên tự nâng quyền thành Admin. Đầu tư đúng mức vào kiểm thử phân quyền là bạn đang bảo vệ trực tiếp dữ liệu và uy tín của doanh nghiệp.

4. Chuẩn bị: dựng ma trận quyền theo vai trò

Trước khi viết bất kỳ ca kiểm thử phân quyền nào, bạn cần một BẢN ĐỒ rõ ràng: hệ thống có những vai trò nào, và mỗi vai trò được phép làm gì. Đây gọi là ma trận quyền (permission matrix) — công cụ nền tảng để không bỏ sót góc kiểm thử nào.

▶ Bước 1: Liệt kê tất cả vai trò trong hệ thống (ví dụ ShopEasy: Khách, Thành viên, Nhân viên kho, Admin).

▶ Bước 2: Liệt kê tất cả chức năng/trang/API quan trọng (xem sản phẩm, đặt hàng, xem đơn, cập nhật tồn kho, quản lý người dùng...).

▶ Bước 3: Với mỗi ô (vai trò × chức năng), đánh dấu ĐƯỢC PHÉP hay KHÔNG — đây chính là bộ ca kiểm thử phân quyền của bạn.

🔒

Nội dung bị khoá

Bạn đang xem bản xem trước. Đăng nhập để mở khoá toàn bộ bài viết và tất cả tài liệu Tester/QA.

Đã xem 24% nội dung
  • Đọc trọn vẹn mọi bài viết
  • Lưu bài & ghi chú cá nhân
  • Theo dõi tiến độ đã đọc
  • Luyện phỏng vấn, ISTQB, Mock
Đăng nhập để đọc tiếp

Chưa có mã? Lấy mã qua Fanpage / Zalo CyberSoft.

0

💬 Bình luận (0)

Bạn có thể đọc mọi bình luận. Đăng nhập để bình luận

Chưa có bình luận nào. Hãy là người đầu tiên!