Xây Dựng Website Bán Hàng Tích Hợp Chống Tấn Công SQL Injection

Đồ án nghiên cứu môn học xây dựng website bán hàng tích hợp chống tấn công sql injection, áp dụng công nghệ tiên tiến, tối ưu giải pháp kỹ thuật cho bài toán kỹ thuật.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Đồ Án Tốt Nghiệp

2023

56
4
0

Phí lưu trữ

30 Point

Tóm tắt

I. Hướng Dẫn Bảo Mật Website Bán Hàng An Toàn Toàn Diện

Trong kỷ nguyên số, việc xây dựng website bán hàng an toàn là nền tảng cốt lõi để bảo vệ tài sản dữ liệu và duy trì uy tín thương hiệu. Một website thương mại điện tử không chỉ là kênh bán hàng mà còn là nơi lưu trữ thông tin nhạy cảm của khách hàng, bao gồm dữ liệu cá nhân, lịch sử giao dịch và thông tin thanh toán. Bất kỳ sự cố nào liên quan đến bảo mật website đều có thể gây ra thiệt hại tài chính nặng nề và làm xói mòn niềm tin của người tiêu dùng. Một trong những mối đe dọa dai dẳng và nguy hiểm nhất đối với các ứng dụng web là tấn công SQL Injection (SQLi). Đây là kỹ thuật mà kẻ tấn công lợi dụng các lỗ hổng trong khâu xử lý dữ liệu đầu vào từ người dùng để chèn và thực thi các câu lệnh SQL độc hại. Mục tiêu của chúng là truy cập, sửa đổi hoặc xóa dữ liệu trong cơ sở dữ liệu an toàn của hệ thống. Theo báo cáo từ các tổ chức an ninh mạng uy tín, SQL Injection liên tục nằm trong danh sách các lỗ hổng bảo mật phổ biến và nghiêm trọng nhất. Việc hiểu rõ bản chất, tác hại và các phương pháp phòng chống là yêu cầu bắt buộc đối với mọi nhà phát triển và quản trị viên hệ thống. Xây dựng một chiến lược phòng thủ đa lớp, từ khâu viết mã cho đến cấu hình hạ tầng, là cách tiếp cận hiệu quả nhất để chống SQL Injection và đảm bảo môi trường kinh doanh trực tuyến bền vững.

1.1. Tầm quan trọng của an ninh mạng trong thương mại điện tử

An ninh mạng là yếu tố sống còn của mọi doanh nghiệp thương mại điện tử. Một hệ thống được bảo vệ tốt không chỉ đảm bảo hoạt động kinh doanh liên tục mà còn xây dựng lòng tin vững chắc nơi khách hàng. Khi người dùng cung cấp thông tin cá nhân, họ tin tưởng rằng dữ liệu đó sẽ được bảo vệ khỏi các truy cập trái phép. Một sự cố rò rỉ dữ liệu có thể dẫn đến việc mất mát thông tin thẻ tín dụng, mật khẩu, và các dữ liệu nhạy cảm khác, gây ra hậu quả pháp lý và tổn thất danh tiếng không thể khắc phục. Do đó, đầu tư vào các giải pháp bảo mật website toàn diện, bao gồm cả việc chống tấn công CSRFngăn chặn XSS, là một khoản đầu tư chiến lược, giúp doanh nghiệp giảm thiểu rủi ro và tạo lợi thế cạnh tranh trên thị trường.

1.2. Giới thiệu tổng quan về lỗ hổng SQL Injection phổ biến

Lỗ hổng SQL Injection (SQLi) là một kỹ thuật tấn công cho phép kẻ xấu can thiệp vào các truy vấn mà một ứng dụng thực hiện tới cơ sở dữ liệu của nó. Lỗ hổng này phát sinh khi ứng dụng không thực hiện việc lọc hoặc xác thực dữ liệu đầu vào một cách đầy đủ trước khi ghép chúng vào câu lệnh SQL. Bằng cách chèn các ký tự điều khiển SQL vào các trường nhập liệu (input fields) như form đăng nhập, thanh tìm kiếm, hoặc tham số URL, kẻ tấn công có thể thay đổi hoàn toàn logic của câu lệnh SQL gốc. Điều này cho phép chúng thực hiện các hành vi trái phép như xem, sửa, xóa dữ liệu, thậm chí là chiếm quyền quản trị cao nhất của cơ sở dữ liệu và máy chủ web. Đây là một trong những mối đe dọa nghiêm trọng nhất đối với an ninh mạng ứng dụng web.

II. Top Rủi Ro Nghiêm Trọng Khi Website Bị Tấn Công SQLi

Một cuộc tấn công SQLi thành công có thể phá hủy hoàn toàn một doanh nghiệp trực tuyến. Hậu quả không chỉ dừng lại ở những thiệt hại tài chính trước mắt mà còn ảnh hưởng lâu dài đến uy tín và sự tồn tại của thương hiệu. Tác hại nghiêm trọng nhất là việc đánh cắp dữ liệu nhạy cảm. Kẻ tấn công có thể trích xuất toàn bộ cơ sở dữ liệu, bao gồm thông tin cá nhân của khách hàng, mật khẩu đã mã hóa, chi tiết thẻ thanh toán và các bí mật kinh doanh. Những dữ liệu này sau đó có thể bị bán trên thị trường chợ đen hoặc sử dụng cho các mục đích lừa đảo. Ngoài ra, kẻ tấn cóm có thể sửa đổi dữ liệu, gây ra sự hỗn loạn trong hoạt động kinh doanh, ví dụ như thay đổi giá sản phẩm, xóa đơn hàng, hoặc chèn các nội dung sai lệch. Trong trường hợp tồi tệ nhất, chúng có thể xóa toàn bộ dữ liệu hoặc sử dụng các lệnh như DROP TABLE để phá hủy cấu trúc cơ sở dữ liệu, khiến website ngừng hoạt động hoàn toàn. Cuối cùng, lỗ hổng SQL Injection còn có thể là cửa ngõ để kẻ tấn công chiếm quyền điều khiển máy chủ, từ đó thực hiện các cuộc tấn công sâu hơn vào hạ tầng mạng nội bộ. Báo cáo của Imperva Web Application Attack Report (WAAR) chỉ ra rằng có tới 29% ứng dụng web vẫn phải đối mặt với các cuộc tấn công từ SQL Injection, cho thấy mức độ phổ biến và nguy hiểm của loại hình tấn công này.

2.1. Phân tích các hình thức tấn công SQL Injection điển hình

Các hình thức tấn công SQLi rất đa dạng, từ đơn giản đến phức tạp. Kỹ thuật phổ biến nhất là vượt qua xác thực, đặc biệt là tại các bảo mật form đăng nhập. Kẻ tấn công chỉ cần nhập một chuỗi như ' OR 1=1 -- vào trường tên người dùng để làm cho điều kiện logic của câu lệnh WHERE luôn đúng, từ đó đăng nhập thành công mà không cần mật khẩu. Một kỹ thuật khác là tấn công dựa trên Union (Union-based SQLi), sử dụng toán tử UNION SELECT để kết hợp kết quả từ một truy vấn độc hại với kết quả của truy vấn hợp lệ, cho phép trích xuất dữ liệu từ các bảng khác trong cơ sở dữ liệu. Ngoài ra còn có các kỹ thuật tấn công mù (Blind SQLi), khi ứng dụng không hiển thị lỗi trực tiếp, kẻ tấn công sẽ dựa vào các phản hồi true/false hoặc độ trễ thời gian của hệ thống để suy luận cấu trúc và dữ liệu của cơ sở dữ liệu. Mỗi hình thức đều khai thác một điểm yếu cụ thể trong quá trình lập trình web an toàn.

2.2. Hậu quả khôn lường Mất dữ liệu và sụp đổ uy tín

Hậu quả của một cuộc tấn công chống SQL Injection thất bại là vô cùng nghiêm trọng. Việc mất dữ liệu khách hàng không chỉ vi phạm các quy định về bảo mật thông tin mà còn phá hủy hoàn toàn niềm tin mà khách hàng đã dành cho thương hiệu. Một khi uy tín bị tổn hại, việc xây dựng lại là một quá trình tốn kém và mất nhiều thời gian. Các chi phí liên quan không chỉ bao gồm việc khắc phục hệ thống, vá lỗi bảo mật, mà còn cả các khoản phạt từ cơ quan quản lý, chi phí kiện tụng từ khách hàng bị ảnh hưởng, và sự sụt giảm doanh thu do mất khách. Về lâu dài, một sự cố bảo mật website lớn có thể khiến doanh nghiệp không thể phục hồi, đặc biệt là đối với các công ty vừa và nhỏ.

III. 5 Phương Pháp Lập Trình Web An Toàn Chống SQL Injection

Phòng chống lỗ hổng SQL Injection hiệu quả nhất bắt đầu từ chính quá trình phát triển phần mềm. Việc áp dụng các phương pháp lập trình web an toàn là tuyến phòng thủ vững chắc nhất. Thay vì cố gắng 'vá' các lỗ hổng sau khi chúng được phát hiện, các nhà phát triển nên tích hợp các biện pháp bảo mật ngay từ đầu. Nguyên tắc cơ bản là không bao giờ tin tưởng vào dữ liệu đầu vào từ người dùng. Mọi dữ liệu nhận được từ client-side, dù qua form, tham số URL hay API, đều phải được coi là tiềm ẩn nguy cơ và cần được xử lý cẩn thận. Kỹ thuật quan trọng hàng đầu là sử dụng các câu lệnh tham số hóa, hay còn gọi là Prepared Statements. Phương pháp này tách biệt hoàn toàn câu lệnh SQL và dữ liệu, đảm bảo rằng dữ liệu đầu vào không bao giờ được diễn giải như một phần của mã thực thi. Bên cạnh đó, việc thực hiện xác thực dữ liệu đầu vào một cách nghiêm ngặt, bao gồm kiểm tra kiểu dữ liệu, độ dài, định dạng và chỉ chấp nhận các giá trị hợp lệ (whitelisting), giúp loại bỏ các chuỗi độc hại ngay từ vòng ngoài. Sử dụng các framework hiện đại với ORM (Object-Relational Mapping) cũng là một giải pháp hiệu quả, vì chúng thường đã tích hợp sẵn các cơ chế bảo vệ chống lại SQLi.

3.1. Sử dụng Prepared Statements và Parameterized Queries

Prepared statements (hay parameterized queries) là phương pháp được khuyến nghị hàng đầu để ngăn chặn SQLi. Cơ chế hoạt động của nó gồm hai bước. Đầu tiên, ứng dụng gửi một khuôn mẫu câu lệnh SQL đến máy chủ cơ sở dữ liệu với các 'dấu giữ chỗ' (placeholders) thay cho dữ liệu người dùng. Máy chủ sẽ phân tích cú pháp và biên dịch khuôn mẫu này. Ở bước thứ hai, ứng dụng gửi các giá trị dữ liệu riêng biệt để lấp vào các dấu giữ chỗ đó. Vì câu lệnh đã được biên dịch trước khi dữ liệu được chèn vào, máy chủ cơ sở dữ liệu sẽ không bao giờ thực thi dữ liệu đó như một phần của câu lệnh. Điều này tạo ra một rào cản hiệu quả, khiến các kỹ thuật chèn mã độc trở nên vô dụng, đảm bảo một cơ sở dữ liệu an toàn.

3.2. Tầm quan trọng của xác thực dữ liệu đầu vào Input Validation

Input validation hay xác thực dữ liệu đầu vào là lớp phòng thủ đầu tiên. Nguyên tắc cốt lõi là kiểm tra mọi dữ liệu do người dùng cung cấp trước khi xử lý. Phương pháp tiếp cận tốt nhất là whitelist (danh sách trắng) - chỉ cho phép những định dạng hoặc giá trị cụ thể đã được định nghĩa trước. Ví dụ, nếu một trường yêu cầu nhập năm sinh, hệ thống chỉ nên chấp nhận các số nguyên có 4 chữ số trong một khoảng hợp lý. Ngược lại, blacklist (danh sách đen) - cố gắng lọc bỏ các ký tự nguy hiểm - thường kém hiệu quả hơn vì kẻ tấn công luôn có thể tìm ra những cách mới để mã hóa và vượt qua bộ lọc. Việc xác thực nên được thực hiện ở cả phía client (dùng Javascript để cải thiện trải nghiệm người dùng) và quan trọng nhất là ở phía server để đảm bảo an toàn tuyệt đối.

3.3. Tận dụng ORM và Stored Procedures để tăng cường bảo mật

Các hệ thống ORM (Object-Relational Mapping) như Eloquent (trong Laravel) hay Hibernate (trong Java) cung cấp một lớp trừu tượng hóa giữa ứng dụng và cơ sở dữ liệu. Hầu hết các ORM hiện đại đều sử dụng parameterized queries một cách mặc định, giúp nhà phát triển tránh được việc tự xây dựng các câu lệnh SQL và giảm thiểu nguy cơ mắc lỗi. Tương tự, Stored Procedures, là các đoạn mã SQL được lưu trữ và thực thi ngay trên máy chủ cơ sở dữ liệu, cũng có thể tăng cường bảo mật. Khi được sử dụng đúng cách với các tham số đầu vào được định nghĩa rõ ràng, chúng giúp giới hạn các thao tác mà ứng dụng có thể thực hiện trên cơ sở dữ liệu, góp phần bảo mật website một cách hiệu quả.

IV. Cách Cấu Hình Hạ Tầng và Cơ Sở Dữ Liệu Chống Lỗ Hổng

Bên cạnh việc lập trình web an toàn, cấu hình hạ tầng và cơ sở dữ liệu đúng cách đóng vai trò then chốt trong chiến lược phòng thủ chiều sâu để chống SQL Injection. Một lớp phòng thủ quan trọng là WAF (Web Application Firewall), hoạt động như một tấm khiên bảo vệ, lọc và giám sát lưu lượng HTTP giữa người dùng và ứng dụng web. WAF có khả năng phát hiện và chặn các mẫu tấn công SQLi phổ biến dựa trên bộ quy tắc được định nghĩa trước, ngăn chặn mối đe dọa trước khi chúng kịp tiếp cận ứng dụng. Về phía cơ sở dữ liệu, việc tuân thủ nguyên tắc đặc quyền tối thiểu (Principle of Least Privilege) là bắt buộc. Tài khoản mà ứng dụng web sử dụng để kết nối tới cơ sở dữ liệu chỉ nên được cấp những quyền hạn thực sự cần thiết để thực thi các chức năng của nó (ví dụ: SELECT, INSERT, UPDATE trên các bảng cụ thể), và tuyệt đối không cấp các quyền quản trị như DROP hay ALTER. Thường xuyên cập nhật và vá lỗi bảo mật cho hệ quản trị cơ sở dữ liệu (MySQL, PostgreSQL,...) cũng giúp loại bỏ các lỗ hổng đã biết. Cuối cùng, tuy không trực tiếp ngăn chặn SQLi, việc sử dụng chứng chỉ SSL/TLS để mã hóa dữ liệu là cực kỳ quan trọng, đảm bảo rằng ngay cả khi kẻ tấn công có thể trích xuất dữ liệu, chúng cũng không thể đọc được nội dung nếu không có khóa giải mã.

4.1. Vai trò của WAF Web Application Firewall trong ngăn chặn

WAF (Web Application Firewall) là một giải pháp bảo mật hiệu quả, hoạt động ở tầng ứng dụng (Lớp 7) của mô hình OSI. Nó có khả năng phân tích sâu nội dung của các yêu cầu HTTP/HTTPS, phát hiện các chuỗi ký tự hoặc hành vi đáng ngờ đặc trưng của tấn công SQLi, XSS và các loại tấn công ứng dụng web khác. Khi phát hiện một yêu cầu độc hại, WAF có thể chặn ngay lập tức, ghi lại sự kiện để phân tích và cảnh báo cho quản trị viên. Việc triển khai WAF giúp tạo ra một lớp bảo vệ bổ sung, đặc biệt hữu ích để bảo vệ các ứng dụng cũ hoặc những hệ thống khó có thể vá lỗi kịp thời.

4.2. Cấu hình quyền và vá lỗi bảo mật cho cơ sở dữ liệu

Việc quản lý quyền truy cập vào cơ sở dữ liệu an toàn là một biện pháp kiểm soát quan trọng. Tài khoản dịch vụ của ứng dụng web không bao giờ nên có quyền quản trị. Thay vào đó, hãy tạo một tài khoản riêng với các quyền hạn được giới hạn chặt chẽ, chỉ đủ để thực hiện các chức năng cần thiết. Điều này giúp giảm thiểu thiệt hại nếu tài khoản bị xâm phạm. Đồng thời, các nhà cung cấp hệ quản trị cơ sở dữ liệu thường xuyên phát hành các bản vá để khắc phục các lỗ hổng bảo mật mới được phát hiện. Việc xây dựng một quy trình để thường xuyên kiểm tra và áp dụng các bản vá lỗi bảo mật này là một phần không thể thiếu của việc quản trị hệ thống an toàn.

V. Case Study Áp Dụng Chống SQL Injection Cho Website PHP

Để minh họa cho việc áp dụng các kỹ thuật phòng chống trong thực tế, có thể tham khảo đồ án “Xây dựng website bán hàng tích hợp chống tấn công SQL Injection” của sinh viên Học viện Kỹ thuật Mật mã. Trong dự án này, nhóm phát triển đã xây dựng một trang thương mại điện tử sử dụng ngôn ngữ bảo mật PHP và cơ sở dữ liệu MySQL, đồng thời tập trung vào việc triển khai các biện pháp phòng ngừa lỗ hổng SQL Injection. Một trong những kỹ thuật cơ bản được áp dụng là sử dụng hàm mysqli_escape_string để xử lý các dữ liệu đầu vào trước khi đưa vào câu lệnh SQL. Chức năng chính của hàm này là thoát các ký tự đặc biệt trong một chuỗi (như dấu nháy đơn ', nháy kép ",...) để chúng không bị hiểu nhầm là một phần của cú pháp SQL. Mặc dù đây là một phương pháp có hiệu quả nhất định đối với các hình thức tấn công đơn giản, cần lưu ý rằng phương pháp hiện đại và an toàn hơn là sử dụng Prepared Statements. Tuy nhiên, việc áp dụng hàm escape chuỗi trong đồ án đã cho thấy nhận thức rõ ràng về nguy cơ từ SQLi và một nỗ lực thực tế để giảm thiểu rủi ro này trong môi trường lập trình PHP thuần.

5.1. Triển khai bảo mật form đăng nhập với hàm escape chuỗi

Trong đồ án, nhóm sinh viên đã áp dụng kỹ thuật escape chuỗi cụ thể cho các chức năng nhạy cảm như bảo mật form đăng nhập. Mã nguồn minh họa cho thấy biến $taikhoan$matkhau nhận từ người dùng đã được truyền qua hàm mysqli_escape_string trước khi được ghép vào câu lệnh SELECT. Ví dụ: $taikhoan = mysqli_escape_string($db->__conn, $taikhoan);. Hành động này ngăn chặn kẻ tấn công chèn các ký tự như ' để phá vỡ chuỗi và thêm vào các điều kiện độc hại như OR 1=1. Đây là một bước thực hành cơ bản và cần thiết trong bảo mật PHP, đặc biệt là khi làm việc với các hệ thống không sử dụng framework hoặc ORM hiện đại.

5.2. Phân tích hiệu quả và hạn chế của phương pháp trong thực tế

Phương pháp sử dụng hàm mysqli_escape_string có hiệu quả trong việc ngăn chặn nhiều kiểu tấn công SQLi phổ biến. Nó làm cho dữ liệu đầu vào trở nên 'vô hại' đối với trình phân tích cú pháp SQL. Tuy nhiên, phương pháp này cũng có hạn chế. Nó phụ thuộc vào việc nhà phát triển phải nhớ áp dụng hàm này cho mọi dữ liệu đầu vào ở mọi nơi trong ứng dụng, điều này dễ dẫn đến sai sót. Ngoài ra, trong một số trường hợp phức tạp liên quan đến bộ ký tự (character set), kỹ thuật này vẫn có thể bị vượt qua. Do đó, cộng đồng an ninh mạng hiện nay khuyến nghị mạnh mẽ việc sử dụng Prepared Statements như một giải pháp ưu việt và toàn diện hơn để xây dựng website bán hàng an toàn.

VI. Bí Quyết Xây Dựng Checklist Bảo Mật Web Toàn Diện 2024

Để xây dựng website bán hàng an toàn một cách bền vững, việc phòng chống không chỉ nên tập trung vào SQL Injection mà cần một cách tiếp cận toàn diện. Xây dựng một checklist bảo mật web chi tiết là bước đi chiến lược, giúp đảm bảo không bỏ sót các khía cạnh quan trọng. Checklist này nên bao gồm cả các biện pháp kỹ thuật và quy trình vận hành. Về mặt kỹ thuật, ngoài các phương pháp chống SQL Injection đã nêu, cần phải có các biện pháp để ngăn chặn XSS (Cross-Site Scripting) bằng cách mã hóa dữ liệu đầu ra, và chống tấn công CSRF (Cross-Site Request Forgery) bằng cách sử dụng token đồng bộ. Việc cấu hình các tiêu đề bảo mật HTTP (HTTP Security Headers) cũng giúp tăng cường khả năng phòng thủ của trình duyệt. Về quy trình, việc thực hiện kiểm thử xâm nhập (pentest website) định kỳ bởi các chuyên gia bảo mật bên ngoài là cực kỳ quan trọng. Hoạt động này giúp mô phỏng các cuộc tấn công thực tế để phát hiện ra các lỗ hổng tiềm ẩn mà đội ngũ phát triển có thể bỏ qua. Cuối cùng, bảo mật là một quá trình liên tục. Cần có kế hoạch theo dõi, cập nhật và vá lỗi bảo mật thường xuyên để ứng phó với các mối đe dọa mới.

6.1. Xây dựng quy trình Pentest Website và rà soát định kỳ

Kiểm thử xâm nhập, hay pentest website, là quá trình đánh giá bảo mật chủ động. Các chuyên gia sẽ sử dụng các công cụ và kỹ thuật giống như tin tặc để cố gắng khai thác các lỗ hổng trong hệ thống. Kết quả của một cuộc pentest là một báo cáo chi tiết về các điểm yếu được tìm thấy, mức độ rủi ro của chúng, và các khuyến nghị để khắc phục. Việc thực hiện pentest định kỳ (ví dụ: hàng năm hoặc sau mỗi lần cập nhật lớn) giúp doanh nghiệp có cái nhìn khách quan về tình trạng bảo mật website của mình và ưu tiên các nỗ lực khắc phục một cách hiệu quả.

6.2. Mở rộng phòng thủ Ngăn chặn XSS và chống tấn công CSRF

Một hệ thống an toàn không thể chỉ tập trung vào một loại lỗ hổng duy nhất. Bên cạnh SQLi, XSS và CSRF là hai mối đe dọa cực kỳ phổ biến. Để ngăn chặn XSS, mọi dữ liệu xuất ra HTML phải được mã hóa (output encoding) để trình duyệt không diễn giải nó như mã kịch bản. Để chống tấn công CSRF, ứng dụng nên sử dụng các token chống giả mạo (anti-CSRF tokens). Mỗi khi người dùng thực hiện một hành động quan trọng (như thay đổi mật khẩu, đặt hàng), một token duy nhất và không thể đoán trước sẽ được gửi đi và xác thực ở phía máy chủ. Việc kết hợp các biện pháp phòng thủ đa dạng này tạo ra một hệ thống an ninh mạng vững chắc.

10/07/2025

Trích đoạn nội dung tài liệu

Đặt vấn đề Hiện nay với sự phát triển không ngừng của công nghệ thì nhu cầu của con người ngày càng tăng. Trên thị trường hiện nay một phương tiện thông tin đã trở nên quen thuộc với chúng ta đó là điện thoại. Chỉ với một vài thao tác bạn đã có thể kết nối tới bạn bè, người thân của mình trên khắp đất nước. Không những nó là một phương tiện liên lạc mà còn đóng góp quan trọng trong các công việc làm ăn của các doanh nhân.

Còn đối với giới trẻ thì điện thoại di động đã dần trở thành một thứ đồ trang sức.com là một trong những website đặc thù áp dụng công nghệ thông tin vào hoạt động bán điện thoại qua mạng và sau này sẽ có xu hướng mở rộng.Và là một cửa hàng chuyên nhập điện thoại di động từ các công ty phân phối nổi tiếng như Nokia, Samsung, Motorola, Sony,… để bán lẻ lại cho người tiêu dùng. Việc giao dịch với khách hàng chủ yếu diễn ra trên website. Mục tiêu xây dựng trang web này nhằm giúp cho khách hàng có thể mua hàng trực tiếp từ xa thông qua mạng internet. Khách hàng ở nhà hay tại cửa hàng vẫn có thể dễ dàng tham khảo thông tin sản phẩm mình tìm, so sánh giá cả các mặt hàng và lựa chọn cho mình loại sản phẩm phù hợp nhu cầu của mình, giúp công việc mua sắm một cách nhanh chóng, tiện lợi, tiết kiệm thời gian, đáp ứng được nhu cầu thực tế.

Hệ thống tìm kiếm dễ dàng, giao diện thân thiện. Chỉ cần đăng nhập vào hệ thống với tài khoản đã có hay chỉ cần vài thao tác đăng ký đơn giản là khách hàng có thể tự do chọn mua và tạo đơn đặt hàng tại hệ thống. Mô tả hoạt động của cửa hàng Ban điều hành - Quản lý và phân phối hoạt động của cửa hàng. - Quyết định giá chính thức cho từng mặt hàng.

Bộ phận bán hàng - Bán hàng qua mạng là một hình thức mới mà người mua hàng phải phải tự thao tác thông qua từng bước để có thể mua được hàng. - Các sản phẩm được sắp xếp, phân chia theo nhiều chủng loại hàng hóa và có nhiều mặt hàng khác nhau để giúp cho người dùng dễ sử dụng, giúp cho người quản trị dễ thay thế, thêm bớt sản phẩm của mình. Trong cách này, người dùng chỉ cần chọn một sản phẩm nào từ trong danh sách của từng loại sản phẩm thì những thông tin về loại sản phẩm đó sẽ hiện lên theo tên hàng hóa, hình ảnh, giá bán và nhưng mô tả ngắn về loại thiết bị đó, bên cạnh là trang liên kết để thêm sản phẩm vào trong giỏ mua hàng. - Giỏ hàng chứa các thông tin lẫn số lượng hàng hóa người dùng mua và có thể được cập nhật vào trong giỏ.

- Khi khách hành muốn đặt hàng thì hệ thống hiển thị trang xác lập đơn đặt hàng cùng với thông tin về khách hàng và hàng hóa. Bộ phận quản trị - Công việc của bộ phận này là thực hiện các nhiệm vụ quản trị mạng, quản lý thông tin của khách hàng, cập nhật thông tin của sản phẩm,… đảm bảo cơ sở dữ liệu luôn được cập nhật nhanh chóng. Yêu cầu của hệ thống bán hàng qua mạng Nhu cầu người sử dụng - Nhu cầu của khách hàng khi truy cập vào trang web là tìm kiếm các sản phẩm. Do đó yêu cầu của chương trình là phải đáp ứng được những nhu cầu đó, sao cho khách hàng có thể tìm kiếm nhanh chóng và hiệu quả các loại sản phẩm mà họ muốn và cần mua.

- Chương trình phải có tính đa dạng và hấp dẫn nhằm thu hút sự quan tâm của nhiều người về công ty mình. - Trang web phải dễ hiểu, giao diện phải dễ dùng, hấp dẫn và quan trọng là làm sao cho khách thấy những thông tin cần tìm cũng như thông tin liên quan. - Điều quan trọng trong mua bán qua mạng là phải đảm bảo an toàn tuyệt đối những thông tin liên quan đến người dùng trong quá trình đặt mua hay thanh toán cũng được đảm bảo hàng được chuyển giao đúng nơi, đúng lúc. Với người quản trị Trang web đòi hỏi người quản trị phải thường xuyên theo dõi các thông tin về hàng hóa, xử lý đúng yêu cầu, đúng chức năng do mình nhập vào và thao tác dễ dàng với công việc quản lý dữ liệu: - Được phép chỉnh sửa, xóa những thông tin sai, không phù hợp.

- Theo dõi quá trình mua bán. - Theo dõi thông tin khách hàng nhập vào khi mua hàng, phải đảm bảo tính an toàn, bảo mật, chính xác. - Theo dõi, xử lý các đơn đặt hàng và cập nhật các thông tin liên quan đến đơn đặt hàng của khách. XÂY DỰNG HỆ THỐNG 2.Xác định các tác nhân  Administrator( Quản trị viên): là thành viên quản trị của hệ thống, có các quyền và chức năng như: tạo các tài khoản, quản lý sản phẩm, quản trị người dùng,…  Customer ( Thành viên): là hệ thống thành viên có chức năng: đăng ký, đăng nhập, tìm kiếm, xem, sửa thông tin cá nhân, xem giỏ hàng, đặt hàng,.

 Guess( Khách vãng lai): là Khách hàng chưa đăng ký, có chức năng: đăng ký, tìm kiếm, xem thông tin sản phẩm, thêm sản phẩm vào giỏ hàng và xem giỏ hàng.Biểu đồ Use Case tổng quát Biểu đồ Use Case tổng quát Hình 2.1 Biểu đồ Use Case tổng quát 2.Đặc tả Use case Đặc tả use case Tìm kiếm thông tin sản phẩm Mô tả quá trình người dùng tìm kiếm sản phẩm Ca sử dụng Tìm kiếm thông tin sản phẩm Tác nhân Administrator hoặc Customer hoặc Guess Mô tả Người dùng tìm kiếm sản phẩm Điều kiện trước Người dùng đang ở trang chủ Luồng sự kiện chính 1. Người dùng nhập hoặc lựa chọn thông tin tìm kiếm theo giá, hãng,. Hệ thống tìm kiếm trong CSDL và hiển thị sản phẩm trùng khớp với tiêu chí tìm kiếm Bảng 2.3 Đặc tả usecase Tìm kiếm thông tin sản phẩm Đặc tả use case Xem thông tin sản phẩm Mô tả quá trình người dùng xem thông tin sản phẩm Ca sử dụng Xem thông tin sản phẩm Tác nhân Administrator hoặc Customer hoặc Guess Mô tả Người dùng xem thông tin sản phẩm Điều kiện trước Sản phẩm đang được hiển thị Luồng sự kiện chính 1. Người dùng click vào sản phẩm muốn xem 2.

Hệ thống lấy thông tin sản phẩm từ CSDL và hiển thị chi tiết Bảng 2.4 Đặc tả use case Xem thông tin sản phẩm Đặc tả use case Xem giỏ hàng Mô tả quá trình tương tác giữa người dùng và hệ thống để xem giỏ hàng Ca sử dụng Xem giỏ hàng Tác nhân Customer hoặc Guess Mô tả Người dùng xem giỏ hàng Điều kiện trước Biểu tượng giỏ hàng được hiển thị Luồng sự kiện chính 1. Người dùng click vào giỏ hàng 2. Hệ thống lấy thông tin của giỏ hàng và hiển thị, bao gồm sản phẩm, số lượng, tổng số tiền,.5 Đặc tả use case Xem giỏ hàng Đặc tả use case Thêm sản phẩm vào giỏ hàng Mô tả hoạt động để người dùng thêm sản phẩm vào giỏ hàng Ca sử dụng Thêm sản phẩm vào giỏ hàng Tác nhân Customer hoặc Guess Mô tả Người dùng xem giỏ hàng Điều kiện trước Sản phẩm đang hiển thị Luồng sự kiện chính 1. Người dùng click vào giỏ hàng 2.

Hệ thống lấy thông tin của giỏ hàng và hiển thị, bao gồm sản phẩm, số lượng, tổng số tiền,.6 Đặc tả use case Thêm sản phẩm vào giỏ hàng Đặc tả use case Đăng ký thành viên Mô tả quá trình đăng ký thành viên mới Ca sử dụng Đăng ký thành viên Tác nhân Administrator hoặc Guess Mô tả Người dùng đăng ký thành viên mới Điều kiện trước Người dùng đang ở trang chủ Luồng sự kiện chính 1. Người dùng bấm đăng ký và nhập các thông tin theo form. Hệ thống kiểm tra thông tin nhập vào, nếu thông tin hợp lệ thì tài khoản thành viên sẽ được thêm vào CSDL Luồng sự kiện phụ Nếu thông tin không hợp lệ, hiển thị thông báo yêu cầu nhập lại Bảng 2.7 Đặc tả usecase Đăng ký thành viên Đặc tả use case Đặt hàng Mô tả quá trình đặt hàng qua mạng Ca sử dụng Đặt hàng Tác nhân Customer Mô tả Người dùng xác nhận mua hàng qua mạng Điều kiện trước Sản phẩm đang được hiển thị Luồng sự kiện chính 1. Người dùng click vào nút đặt hàng và điền các thông tin cần thiết như địa chỉ, số điện thoại, chọn phương thức thanh toán,.

Hệ thống lưu thông tin khách hàng và hoá đơn, thông báo đặt hàng thành công hay không thành công.8 Đặc tả use case Đặt hàng Đặc tả use case Đăng nhập Mô tả quá trình người dùng đăng nhập Ca sử dụng Đăng nhập Tác nhân Administrator hoặc Customer Mô tả Người dùng đăng nhập vào hệ thống Điều kiện trước Người dùng đã có tài khoản Luồng sự kiện chính 1. Người dùng click vào đăng nhập và điền tên đăng nhập, mật khẩu. Hệ thống so sánh thông tin với tên đăng nhập, mật khẩu trong CSDL 3. Nếu đúng, cho phép đăng nhập và hiển thị các chức năng của Customer Luồng sự kiện 4.

Nếu sai, hiển thị thông báo sai thông tin đăng nhập và yêu cầu nhập lại.9 Đặc tả use case Đăng nhập Đặc tả use case Đăng xuất Mô tả quá trình người dùng đăng xuất Ca sử dụng Đăng xuất Tác nhân Administrator hoặc Customer Mô tả Người dùng đăng xuất khỏi hệ thống Điều kiện trước Người dùng đã đăng nhập vào hệ thống Luồng sự kiện chính 1. Người dùng click vào đăng xuất 2. Hệ thống tiến hành xóa session lưu thông tin đăng nhập để dừng phiên làm việc của Customer Bảng 2.10 Đặc tả use case Đăng xuất Đặc tả use case Đổi mật khẩu Mô tả quá trình người dùng đổi mật khẩu Ca sử dụng Đổi mật khẩu Tác nhân Administrator hoặc Customer Mô tả Người dùng đổi mật khẩu Điều kiện trước Người dùng đã đăng nhập vào hệ thống Luồng sự kiện chính 1. Người dùng click vào đổi mật khẩu, nhập mật khẩu cũ và mật khẩu mới 2.

Hệ thống kiểm tra mật khẩu cũ và mới, nếu hợp lệ thì cập nhật mật khẩu mới vào CSDL Luồng sự kiện phụ 3. Nếu mật khẩu cũ không đúng thì không cho phép đổi mật khẩu, thông báo sai mật khẩu cũ 4. Nếu mật khẩu mới không hợp lệ thì không lưu và thông báo nhập lại mật khẩu mới Bảng 2.11 Đặc tả use case Đổi mật khẩu Đặc tả use case Thêm sản phẩm Mô tả quá trình quản trị viên thêm sản phẩm mới Ca sử dụng Thêm sản phẩm Tác nhân Administrator Mô tả Administrator thêm sản phẩm mới vào CSDL Điều kiện trước Administrator đã đăng nhập vào tài khoản của mình Luồng sự kiện chính 1. Administrator click vào thêm sản phẩm và điền các thông tin cần thiết 2.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ