Bảo mật và quyền riêng tư
Kiểm tra quyền trên từng đối tượng nghiệp vụ
Khách hàng đã đăng nhập không mặc nhiên được xem mọi hóa đơn hay tệp đính kèm. Hãy xác định quyền trên đối tượng nghiệp vụ và yêu cầu bằng chứng kiểm thử cho màn hình, xuất dữ liệu và tác vụ nền.
Cổng khách hàng có thể hiển thị đúng nhưng quy tắc truy cập vẫn chưa đầy đủ. Câu hỏi hữu ích không chỉ là một người có đăng nhập được hay không. Cần biết người đó được thực hiện thao tác nào trên hóa đơn, đơn hàng hoặc tài liệu cụ thể. Hãy đưa câu hỏi này vào tiêu chí nghiệm thu trước khi phát triển.
Tách danh tính khỏi quyền thực hiện
Xác thực kiểm tra danh tính. Phân quyền xác định thao tác được yêu cầu có được phép hay không. OWASP xem đây là hai quyết định riêng và khuyến nghị kiểm tra quyền trong mọi yêu cầu.[1] Vì vậy, đăng nhập thành công không đồng nghĩa với quyền đọc mọi bản ghi.
Hãy lập bảng ngắn gồm người thực hiện, đối tượng và thao tác. Bảng cần có đầu mối khách hàng, người được ủy quyền, nhân viên tài chính và tài khoản dịch vụ. Phân biệt quyền đọc hóa đơn với quyền đổi thông tin nhận thanh toán. Ghi riêng các điều kiện về sở hữu, thành viên tổ chức và quan hệ chia sẻ đã được duyệt.
Đặt quyết định kiểm tra cạnh dữ liệu
OWASP khuyến nghị kiểm tra truy cập phía máy chủ và cảnh báo không dựa vào kiểm soát phía trình duyệt.[1] Yêu cầu nhóm chỉ ra nơi máy chủ quyết định quyền trước khi trả dữ liệu hoặc chấp nhận thay đổi. Phạm vi rà soát cần có tệp đính kèm, kết quả tìm kiếm, số liệu tổng hợp và bản xuất tải xuống.
Nên dùng một giao diện chính sách nhất quán thay vì rải điều kiện vai trò khắp mã nguồn. Điều này không nhất thiết đòi hỏi một lời gọi từ xa tốn kém cho từng dòng dữ liệu. Thiết kế có thể kết hợp giới hạn truy vấn với kiểm tra thao tác. Mọi cải tiến hiệu năng phải giữ nguyên quyết định truy cập, kể cả khi quyền thay đổi.
Ví dụ giả định: hóa đơn có tranh chấp
Trong một cổng nhà phân phối giả định, đầu mối mua hàng được xem hóa đơn của một chi nhánh. Quản lý vùng được xem nhiều chi nhánh nhưng không được sửa thông tin ngân hàng. Người phụ trách sản phẩm ghi thành các quyền riêng, thay vì cấp chung một vai trò khách hàng có quyền rộng.
Kiểm thử sau đó bao gồm tệp hóa đơn, bản xuất tổng hợp và yêu cầu tranh chấp gửi sau khi quyền chi nhánh bị thu hồi. Kết quả từ chối không được chứa chi tiết hóa đơn. Ví dụ này minh họa bằng chứng nghiệm thu, không khẳng định một cổng đang vận hành đã an toàn.
Bằng chứng cần có trước nghiệm thu
Dùng bản ghi tổng hợp và tài khoản kiểm thử đã được cho phép. Yêu cầu cả kết quả cho phép lẫn từ chối, kèm giải thích quy tắc nghiệp vụ của từng kết quả.
- Liệt kê điều kiện sở hữu hoặc chia sẻ cho từng đối tượng và thao tác.
- Kiểm thử việc đọc và sửa trái quyền trên mọi giao diện được hỗ trợ.
- Áp dụng cùng quyền đối tượng cho bản xuất và tệp đính kèm.
- Kiểm thử lại sau khi xóa thành viên và khi quyền ủy nhiệm hết hạn.
Chấp nhận chi phí duy trì
Quy tắc chi tiết tạo ra nhiều quyết định và ca kiểm thử hơn một cờ quản trị duy nhất. Hãy giao một chủ sở hữu nghiệp vụ phụ trách ngoại lệ. Rà soát lại bảng khi quy trình thay đổi, không chỉ khi xuất hiện màn hình mới. Chỉ nghiệm thu khi bằng chứng bao phủ đối tượng dữ liệu bên dưới, thay vì chỉ thanh điều hướng nhìn thấy được.