2009-02-02 39 views
9

Tôi sẽ sớm xây dựng một ứng dụng web, nơi tôi sẽ cần có một mô hình bảo mật để người dùng khác nhau có quyền truy cập vào các phần khác nhau của ứng dụng và/hoặc các bộ dữ liệu khác nhau trong các phần cụ thể đó của ứng dụng. Tôi đang tranh luận giữa hai phương pháp thực hiện bảo mật sau đây:Danh sách trắng, danh sách trắng hoặc bảo mật danh sách đen nào tốt hơn hoặc cả hai?

Danh sách trắng: Theo người dùng mặc định có quyền truy cập và không được cấp quyền truy cập vào những thứ họ cần.

hoặc

Danh sách đen: Bằng cách sử dụng mặc định có quyền truy cập vào tất cả mọi thứ và tiếp cận của họ được lấy ra từ những điều mà họ không cần.

Có phương pháp hay nhất về phương pháp nào được ưa thích hơn không? Nếu có một phương pháp khác sẽ giải quyết tốt hơn vấn đề này, điều đó cũng rất thú vị để biết.

Cảm ơn.

Trả lời

21

Từ giấy cổ điển "The Protection of Information in Computer Systems" (Saltzer & Schroeder 1975), trong đó mô tả tám nguyên tắc quan trọng thiết kế, một trong số đó là: giá trị mặc định

Fail-an toàn: Truy cập cơ sở quyết định về việc cho phép chứ không phải trừ. Nguyên tắc này, được đề xuất bởi E. Glaser năm 1965,8 có nghĩa là tình trạng mặc định là thiếu quyền truy cập, và lược đồ bảo vệ xác định các điều kiện theo đó quyền truy cập là cho phép. Cách khác, trong đó các cơ chế cố gắng xác định các điều kiện theo đó quyền truy cập phải bị từ chối, trình bày sai số cơ sở tâm lý cho hệ thống an toàn thiết kế. Một thiết kế bảo thủ phải là dựa trên các đối số tại sao các đối tượng nên có thể truy cập được, thay vì lý do tại sao chúng phải là . Trong một hệ thống lớn, một số đối tượng sẽ không đầy đủ được xem xét, do đó, mặc định thiếu sự cho phép của sẽ an toàn hơn. Thiết kế hoặc lỗi thực hiện trong cơ chế cho phép rõ ràng có xu hướng không thành công bằng cách từ chối cấp phép, một tình huống an toàn vì sẽ nhanh chóng phát hiện .Mặt khác, thiết kế hoặc lỗi triển khai trong cơ chế loại trừ rõ ràng quyền truy cập có xu hướng không thành công bằng cách cho phép truy cập , lỗi có thể bị không được sử dụng bình thường. Nguyên tắc này áp dụng cho cả cấu trúc bảo vệ bên ngoài của cơ chế bảo vệ và thực thi cơ bản.

11

Danh sách trắng. Với danh sách cấm, bạn phải xem xét tất cả các đầu vào mà MIGHT không hợp lệ. Với danh sách trắng, bạn chỉ cần xem xét những gì hợp lệ.

3

Bảo mật luôn được tạo xung quanh những gì bạn gọi là "danh sách trắng". Khóa chúng ra khỏi mọi thứ và chỉ mở ra những gì họ cần.

0

Chế độ xem bi quan cho biết danh sách trắng, chế độ xem lạc quan sẽ cho biết danh sách cấm. Trực tuyến, tôi giữ an ninh trong vấn đề cao hơn, vì vậy thực sự nếu một danh sách trắng/danh sách đen được yêu cầu, chắc chắn đi với một danh sách trắng.

1

Trong trường hợp của ứng dụng web, tôi sẽ luôn sử dụng danh sách trắng. Nói chung tốt hơn là cung cấp cho người dùng quá ít năng lượng hơn là quá nhiều.

1

Luôn làm việc với một danh sách trắng, theo cách đó, ngay cả khi bạn đã bỏ lỡ điều gì đó mà bạn không bị tổn thương.

5

Hãy tưởng tượng bạn có một bộ khóa nghìn khóa cửa mà bạn cần cấp cho ai đó quyền truy cập.

Bạn có muốn đi qua tất cả các chìa khóa và cố gắng đưa ra những người này hoàn toàn không cần và cung cấp cho họ phần còn lại? Hay bạn chỉ muốn cung cấp cho họ những chìa khóa họ hoàn toàn cần và từ chối họ phần còn lại?

Lỗi nào có nhiều khả năng xảy ra lỗi hơn?

2

Bạn không biết những gì bạn không biết.

Có nhiều cách để thoát khỏi xác thực người dùng (sử dụng UTF-8 hoặc mã hóa khác, v.v.) và nhiều cách để thực hiện các cuộc tấn công tập lệnh chéo trang. Bạn có chắc bạn có thể đưa ra danh sách đen bao gồm tất cả các cuộc tấn công có thể xảy ra không? Danh sách này có thể là vô hạn.

Tuy nhiên, việc đưa ra danh sách những gì tốt là dễ dàng hơn nhiều và do đó an toàn hơn nhiều.

Các vấn đề liên quan