Hệ thống được xây dựng dựa trên nền công nghệ .NET được thiết kế theo nguyên tắc thống nhất, dễ sử dụng và hướng tới người dùng. Các bước thiết kế ban đầu bao gồm việc khảo sát nội dung thông tin và cấu trúc tổ chức để xác định mẫu trình bày, sau đó mô tả chi tiết cho từng thành phần của phần mềm và đảm bảo các yêu cầu về an toàn, bảo mật thông tin cũng như tính thân thiện, dễ sử dụng,...
1. Giải pháp về bảo mật
Sử dụng các bẫy lỗi tránh việc tấn công bằng SQL injection kết hợp với các giải pháp mã hóa, đặt mật khẩu nhằm hạn chế tối đa các hành động tấn công phá hoại, lấy cắp dữ liệu cũng như truy xuất dữ liệu vượt cấp cho phép. Việc bảo mật được thiết kế và cài đặt ở mức:
- Mức CSDL tài khoản (tài khoản đăng nhập và mật khẩu);
- Mức ứng dụng thông qua quyền truy cập và thao tác các chức năng của các ứng dụng cũng như đối với dữ liệu hoặc thông tin.
Phần mềm được đảm bảo:
- Tính toàn vẹn dữ liệu, dữ liệu được đảm bảo không bị thay đổi;
- Nguồn gốc thông tin: với cơ chế phân quyền sử dụng cho các quản trị viên, dữ liệu sẽ được xác thực dễ dàng để chứng tỏ nguồn gốc dữ liệu không bị giả mạo;
- Tính bảo mật: các dữ liệu được mã hóa từng phần để chống lại sự bẻ khóa;
- Các mật khẩu được mã hóa đảm bảo tính bảo mật cần thiết.
Lớp cơ sở dữ liệu của phần mềm ứng d ng phải được bảo mật với các yêu cầu sau:
a. Sử dụng tài khoản truy cập cơ sở dữ liệu cho từng phần mềm ứng dụng khi kết nối đến cơ sở dữ liệu, không được sử dụng tài khoản quản trị hệ thống (system admin) cơ sở dữ liệu để thiết lập kết nối từ ứng dụng đến dữ liệu;
b. Mật khẩu của các tài khoản khai báo phải có ít nhất 8 ký tự;
c. Các tài khoản được tạo mới trong cơ sở dữ liệu không đưa vào nhóm quản trị hệ thống (system admin).
Giới hạn các quyền truy cập dữ liệu không cần thiết đối với các tài khoản dùng kết nối từ lớp ứng dụng đến lớp cơ sở dữ liệu.
2. Kiến trúc hệ thống
Phần mềm ứng dụng phải được thiết kế gồm 3 lớp: lớp giao diện, lớp xử lý ứng dụng và lớp cơ sở dữ liệu
a. Lớp giao diện có trách nhiệm quản lý giao diện hiển thị thông tin của các loại người dùng khác nhau. Việc phân tách riêng biệt hai lớp hiển thị dữ liệu và lớp xử lý dữ liệu bảo đảm rằng ứng dụng có thể dễ dàng mở rộng khi có nhu cầu
b. Lớp xử lý ứng dụng có trách nhiệm làm cầu nối giữa hai lớp “hiển thị” và “dữ liệu”
c. Lớp cơ sở dữ liệu thực hiện các thao tác truy cập tới các hệ thống thông tin. Ở đây cũng có một số tính năng xử lý dữ liệu do hệ quản trị cơ sở dữ liệu cung cấp nhằm bảo đảm tính nhất quán, chính xác của thông tin.
Đối với các phần mềm ứng dụng trên nền Win-form tùy thuộc vào tính chất quan trọng của cơ sở dữ liệu và quy mô triển khai để thiết kế phù hợp và có tính bảo mật cao.