Dữ liệu và hệ thống nghiệp vụ
Thiết kế phê duyệt có ủy quyền và xử lý ngoại lệ
Tuyến phê duyệt dễ đứt khi người duyệt vắng mặt hoặc nội dung đổi giữa chừng. Hãy thiết kế ủy quyền, chuyển cấp, nộp lại và thẩm quyền ngoại lệ thành quy tắc rõ, thay vì xử lý ngoài ứng dụng.
Một nút duyệt đơn giản che khuất nhiều quyết định. Người duyệt có quyền với bản ghi này không? Khi họ vắng mặt thì sao? Nội dung đổi rồi thì phê duyệt còn áp dụng không? Quy trình dùng được phải trả lời trước ngoại lệ đầu tiên. Hãy mô hình hóa duyệt như hành động nghiệp vụ được kiểm soát, không chỉ đổi hai nhãn trạng thái.
Gắn phê duyệt với yêu cầu xác định
Chỉ rõ nội dung mà lần duyệt bao phủ và điều kiện phải xem xét lại. Đổi điểm đến có thể quan trọng hơn sửa lỗi chính tả. Nên giữ phiên bản đã duyệt riêng với đề nghị sau đó để người vận hành không nhầm phê duyệt cũ là quyền thực hiện nội dung mới.
Cho người duyệt đủ ngữ cảnh, gồm tệp liên quan và kiểm tra chưa xử lý. Tách xem xét, phê duyệt và thực hiện nếu đó là các trách nhiệm khác nhau. Người được bình luận không mặc nhiên có quyền duyệt hoặc thực hiện hành động phát sinh.
Giới hạn ủy quyền thay vì chia sẻ danh tính
Người được ủy quyền hành động theo phạm vi, thời hạn và điều kiện nghiệp vụ cụ thể. Người duyệt chính không nên chia sẻ tài khoản. OWASP khuyến nghị kiểm tra quyền trên mọi yêu cầu.[4] Kiểm tra ngay lúc quyết định, gồm việc ủy quyền còn hợp lệ với bản ghi và hành động hay không.
Ghi người thực sự thao tác và ủy quyền được dùng. Hướng dẫn log của OWASP nhấn mạnh ai thực hiện và sự kiện gì xảy ra.[3] Thêm người có thẩm quyền ban đầu làm ngữ cảnh nghiệp vụ, không thay tên người thao tác bằng tên quản lý vắng mặt. Cho công việc đang chờ phản ánh việc thu hồi ủy quyền.
Ví dụ giả định: yêu cầu truy cập khẩn cấp
Một nhóm kho giả định cần duyệt quyền vào tạm thời khu lưu trữ hạn chế. Giám sát thường lệ vắng mặt. Người được ủy quyền chỉ được duyệt yêu cầu của địa điểm đó trong khoảng vắng mặt đã thống nhất. Yêu cầu ngoài địa điểm chuyển sang người phụ trách ngoại lệ riêng.
Sau đó người yêu cầu kéo dài thời gian truy cập. Đề nghị quay lại xem xét vì lần duyệt trước chỉ bao phủ khoảng ngắn hơn. Bước này tăng thao tác cho việc khẩn, nhưng giữ lời giải thích rõ về người chấp nhận phạm vi thực tế. Không có phê duyệt tự động nào được ngụ ý.
Có tuyến ngoại lệ mà không mất kiểm soát
Chuyển cấp phải giao trách nhiệm, không âm thầm duyệt khi hết giờ. Quy định cách nhắc, giao lại, từ chối và rút yêu cầu tương tác với nhau. Phân biệt yêu cầu chờ xem xét với yêu cầu bị chặn vì không có người đủ quyền. Cả hai cần chú ý nhưng cách giải quyết khác nhau.
Mô hình quá chi tiết tốn công duy trì và có thể làm chậm việc thường lệ. Bắt đầu bằng tập quy tắc nhỏ nhất phản ánh đúng thẩm quyền. Kiểm thử người duyệt vắng, nội dung đổi, ủy quyền hết hạn và quyết định cạnh tranh trước khi mở rộng đến mọi bộ phận. Cho người gửi thấy yêu cầu đang đợi ở đâu và ai có thể giải quyết tuyến bị chặn, để họ không phải tìm người có quyền bằng tin nhắn riêng.
- Liệt kê phạm vi duyệt và điều kiện phải duyệt lại.
- Giới hạn ủy quyền theo hành động, bản ghi và thời hạn.
- Ghi người thực sự thao tác và thẩm quyền được dùng.
- Giao người xử lý khi không có ai đủ quyền duyệt.
- Kiểm thử quyết định đồng thời và yêu cầu đã rút.