II. Pha thiết kế
2. Thiết kế tương tranh và an toàn bảo mật
2.1.Thiết kế tương tranh
- Dữ liệu của thư viện sẽ được quản lý tập trung trên một máy tính chủ. Các máy tính trong thư viện muốn thực hiện các thao tác sẽ phải gọi các hàm thao tác ở trên máy chủ để có thể làm việc được với CSDL. Điều này có thể dẫn đến sự tương tranh giữa các máy khách.
- Để giảm thiểu tương tranh, ta sẽ sử dụng các giao tác để thực hiện một tập các thay đổi trên cơ sở dữ liệu.
o Pha đọc: Pha này sẽ ghi nhận mọi cập nhật dữ liệu. Mỗi mục dữ liệu được cập nhật sẽ được ghi vào một bản ghi tạm thời. Sau khi mọi cập nhật đã được biến thành bản ghi tạm thì ta sẽ chuyển sang pha tiếp theo.
o Pha phê chuẩn: Ở pha này, các bản ghi tạm sẽ được kiểm tra. Nếu có xung đột với bất kỳ giao tác nào đã được thực hiện trước đó thì giao tác sẽ bị hủy.
o Pha ghi: Nếu ở pha phê chuẩn không phát hiện được sự xung đột nào thì các bản ghi tạm sẽ trở thành các bản dữ liệu chính thức.
- Để đảm bảo giảm thiểu đến mức tối đa sự tương tranh, các giao tác sẽ được đánh số thứ tự trước khi bước vào pha phê chuẩn. Các pha đọc và pha phê chuẩn có thể được thực hiện đồng thời nhưng pha cuối (pha ghi) phải thực hiện tuần tự theo số thứ tự đã được gán. Và số thứ tự chỉ được gán duy nhất một lần. và không được tái sử dụng.
2.2. Thiết kế an toàn bảo mật- Các khía cạnh của an toàn bảo mật: - Các khía cạnh của an toàn bảo mật:
o Sự riêng tư (Privacy): Thông tin có thể được che dấu, và chỉ ở trạng thái sẵn sàng với những người dùng được phép tác động vào nó như xem hoặc chỉnh sửa. Điều này đảm bảo cho người sử dụng khai thác tài nguyên của hệ thống theo đúng chức năng, nhiệm vụ đã được phân cấp, ngăn chặn được sự truy nhập thông tin bất hợp pháp
o Xác thực (Authentication): Cần biết nơi mà phần thông tin được gửi đến để quyết định xem phần thông tin đó có đáng tin cậy hay không
o Tính không thể bác bỏ được (Irrefutability): Ngược với xác thực, tính không thể bác bỏ được nhằm đảm bảo rằng người tạo ra thông tin không thể phủ nhận rằng họ chính là người tạo ra nó. Điều này hữu ích cho chúng ta khi có bất kì sai sót xảy ra.
o Tính toàn vẹn (Integrity): Đảm bảo rằng thông tin không bị mất mát trên đường đi, bảo đảm sự nhất quán của dữ liệu trong hệ thống. Có thể đưa ra các biện pháp để ngăn chặn được việc thay đổi bất hợp pháp hoặc phá hoại dữ liệu.
o Tính an toàn (Safety): phải có thể điều khiển việc truy cập tài nguyên (như máy móc, tiến trình, cơ sở dữ liệu và các tệp) . Tính an toàn cũng được hiểu như là quyền hạn.
- Các quy luật cần phải được tuân thủ:
o Ngăn chặn việc xâm nhập máy chủ khi không được phép.
o Các thông tin nhạy cảm như chi tiết về ý tưởng kinh doanh hay chiến lược kinh doanh, các hồ sơ cá nhân, chi tiết về số thẻ tín dụng mà bạn đang dùng, các thông tin liên quan đến an ninh quốc gia….phải được đảm bảo không bị truyền ra ngoài.
o Đảm bảo thông tin khi đi ra bên ngoài không bị “nghe lén” trong quá trình truyền và chỉ có đúng người nhận mới có thể đọc được.
o Bảo vệ mật mã (password) của khách hàng và nhân viên, nó không chỉ đơn thuần là chính sách bảo mật mà nó còn liên quan tính riêng tư cao.
o Bảo vệ tài nguyên hệ thống của client: bảo vệ client chống lại các truy cập tài nguyên bất hợp pháp và chống lại sự phá hoại từ bên ngoài. Vì chúng ta muốn cung cấp dịch vụ chất lượng tốt và không muốn bị kiện ra tòa do vài sai lầm.
- Các biện pháp an toàn và bảo mật áp dụng cho hệ thống:
o Sử dụng mã hóa MD5 cho các thông tin quan trọng như tên tài khoản và mật khẩu.
o Mọi thay đổi về cơ sở dữ liệu đều phải được ghi vào trong một file nhật ký (file log) với các thông tin về dữ liệu được thay đổi, thời gian thay đổi và IP máy tính thực hiện yêu cầu thay đổi.
o Thường xuyên thực hiện việc sao lưu dữ liệu máy chủ, để phòng trường hợp bị tấn công.
o Mọi yêu cầu, câu lệnh của máy khách đều phải được ghi lại trong một file nhật ký, tránh trường hợp đường truyền mạng bị ngắt hoặc một số lỗi khác khiến yêu cầu không thực hiện được và phải gửi lại yêu cầu cho máy chủ.
o Phòng tránh SQL Injection: Khi thực hiện bất kỳ câu lệnh truy vấn nào ta đều phải lọc và xóa đi các ký tự đặc biệt có trong phần dữ liệu mà người dùng nhập vào (như ; “ ‘).