Ưu, nhược điểm của JavaScriptƯu điểm của JavaScript:- Dễ hiểu, dễ học hơn so với các ngôn ngữ lập trình khác- Dễ dàng phát hiện và khắc phục, sửa chữa lỗi- Hoạt động được trên nhiều nền
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN MÔN HỌC
THỰC TẬP CƠ SỞĐề tài:
XÂY DỰNG WEBSITE BÁN HÀNG TÍCH HỢPCHỐNG TẤN CÔNG SQL INJECTION
Sinh viên thực hiện: Nguyễn Tuấn Sơn – CT040239Nguyễn Đức Tuấn Anh – CT040203Phạm Huy Hiếu – CT040220
(Nhóm 44)
Giảng viên hướng dẫn: ThS LÊ THỊ HỒNG VÂN
Hà Nội, 11-2022
Trang 2MỤC LỤC
DANH SÁCH BẢNG BIỂU 5
DANH MỤC HÌNH ẢNH 6
LỜI MỞ ĐẦU 8
CHƯƠNG 1 GIỚI THIỆU CHUNG VÀ KHẢO SÁT HỆ THỐNG 9
1.1.Giới thiệu chung về các ngôn ngữ 9
1.1.1 Tổng quan về HTML 9
1.1.2 Tổng quan về CSS 10
1.1.3 Tìm hiểu về ngôn ngữ Javascript 11
1.1.4 Cơ sở dữ liệu MYSQL 14
1.2.Tổng quát bài toán 16
1.2.1 Đặt vấn đề 16
1.2.2 Mô tả hoạt động của cửa hàng 16
1.2.3 Yêu cầu của hệ thống bán hàng qua mạng 17
CHƯƠNG 2 XÂY DỰNG HỆ THỐNG 19
2.1.Xác định các tác nhân 19
2.2.Biểu đồ Use Case tổng quát 20
Biểu đồ Use Case tổng quát 20
2.3.Đặc tả Use case 20
Đặc tả use case Tìm kiếm thông tin sản phẩm 20
Đặc tả use case Xem thông tin sản phẩm 21
Đặc tả use case Xem giỏ hàng 21
Đặc tả use case Thêm sản phẩm vào giỏ hàng 22
Đặc tả use case Đăng ký thành viên 22
Đặc tả use case Đặt hàng 23
Đặc tả use case Đăng nhập 23
Đặc tả use case Đăng xuất 24
Đặc tả use case Đổi mật khẩu 24
Đặc tả use case Thêm sản phẩm 25
Đặc tả use case Sửa thông tin sản phẩm 25
Đặc tả use case Xóa sản phẩm 26
Đặc tả use case Xóa thành viên 26
2.4.Biểu đồ hoạt động 27
Trang 3Biểu đồ hoạt động Đăng nhập 27
Biểu đồ hoạt động Đăng xuất 27
Biểu đồ hoạt động Đăng ký thành viên 28
Biểu đồ hoạt động Xem thông tin sản phẩm 28
Biểu đồ hoạt động Thêm sản phẩm vào giỏ hàng 29
Biểu đồ hoạt động Đặt hàng 29
Biểu đồ hoạt động Đổi mật khẩu 30
Biểu đồ hoạt động Thêm sản phẩm 31
Biểu đồ hoạt động Sửa thông tin sản phẩm 31
Biểu đồ hoạt động Xoá sản phẩm 32
Biểu đồ hoạt động xoá thành viên 32
2.5.Biểu đồ tuần tự 33
Biểu đồ tuần tự chức năng Đăng ký 33
Biểu đồ tuần tự chức năng Đăng nhập 33
Biểu đồ tuần tự chức năng Đổi mật khẩu 34
Biểu đồ tuần tự chức năng Tìm kiếm sản phẩm 34
Biểu đồ tuần tự chức năng Thêm mới sản phẩm 35
Biểu đồ tuần tự chức năng Sửa thông tin sản phẩm 35
Biểu đồ tuần tự chức năng Xóa sản phẩm 36
2.7.Lược đồ chi tiết giữa các bảng 40
CHƯƠNG 3.TRIỂN KHAI GIẢI PHÁP CHỐNG SQL INJECTION TRÊN WEBSITE413.1.Tổng quan về SQL INJECTION 41
3.1.1 Tổng quan SQL Injection 41
3.1.2 Tác hại của SQL Injection 41
3.2.Cách tấn công và phòng tránh SQL Injection 42
Trang 44.2.Đăng nhập, đăng ký tài khoản người dùng 48
4.2.1 Giao diện form đăng nhập 48
4.2.2 Giao diện form đăng ký 48
Trang 5DANH SÁCH BẢNG BIỂU
Bảng 1.1 So sánh Java và JavaScript 13
Bảng 1.2 Phân biệt giữa các ngôn ngữ 13
Bảng 2.1 Đặc tả usecase Tìm kiếm thông tin sản phẩm 21
Bảng 2.2 Đặc tả use case Xem thông tin sản phẩm 21
Bảng 2.3 Đặc tả use case Xem giỏ hàng 22
Bảng 2.4 Đặc tả use case Thêm sản phẩm vào giỏ hàng 22
Bảng 2.5 Đặc tả usecase Đăng ký thành viên 23
Bảng 2.6 Đặc tả use case Đặt hàng 23
Bảng 2.7 Đặc tả use case Đăng nhập 24
Bảng 2.8 Đặc tả use case Đăng xuất 24
Bảng 2.9 Đặc tả use case Đổi mật khẩu 25
Bảng 2.10 Đặc tả use case Thêm sản phẩm 25
Bảng 2.11 Đặc tả use case Sửa thông tin sản phẩm 26
Bảng 2.12 Đặc tả use case Xoá sản phẩm 26
Bảng 2.13 Đặc tả use case Xoá thành viên 27
Trang 6DANH MỤC HÌNH ẢNH
Hình 2.1 Biểu đồ Use Case tổng quát 20
Hình 2.2 Biểu đồ hoạt động Đăng nhập 27
Hình 2.3 Biểu đồ hoạt động Đăng xuất 28
Hình 2.4 Biểu đồ hoạt động Đăng ký thành viên 28
Hình 2.5 Biểu đồ hoạt động Xem thông tin sản phẩm 29
Hình 2.6 Biểu đồ hoạt động Thêm sản phẩm vào giỏ hàng 29
Hình 2.7 Biểu đồ hoạt động Đặt hàng 30
Hình 2.8 Biểu đồ hoạt động Đổi mật khẩu 30
Hình 2.9 Biểu đồ hoạt động Thêm sản phẩm 31
Hình 2.10 Biểu đồ hoạt động Sửa thông tin sản phẩm 31
Hình 2.11 Biểu đồ hoạt động Xoá sản phẩm 32
Hình 2.12 Biểu đồ hoạt động xoá thành viên 32
Hình 2.13 Biểu đồ tuần tự chức năng Đăng ký 33
Hình 2.14 Biểu đồ tuần tự chức năng Đăng nhập 33
Hình 2.15 Biểu đồ tuần tự chức năng Đổi mật khẩu 34
Hình 2.16 Biểu đồ tuần tự chức năng Tìm kiếm sản hẩm 34
Hình 2.17 Biểu đồ tuần tự chức năng Thêm mới sản phẩm 35
Hình 2.18 Biểu đồ tuần tự chức năng Sửa thông tin sản phẩm 35
Hình 2.19 Biểu đồ tuần tự chức năng Xoá sản phẩm 36
Hình 2.20 Lược đồ chi tiết giữa các bảng 40
Hình 3.1 Top 10 lỗ hổng phổ biến nhất theo OWASP (theo % ứng dụng web) năm 2019 42
Hình 3.2 SQL Injection vượt qua đăng nhập 43
Hình 4.1 Giao diện trang chủ 47
Trang 7Hình 4.2 Giao diện form đăng nhập 48
Hình 4.3 Giao diện form đăng ký 48
Hình 4.4 Giao diện giỏ hàng 49
Hình 4.5 Giao diện trang chi tiết sản phẩm 49
Hình 4.6 Giao diện form đăng nhập admin 50
Hình 4.7 Giao diện trang quản lý sản phẩm 50
Hình 4.8 Giao diện trang quản lý đơn hàng 51
Hình 4.9 Giao diện trang quản lý khách hàng 51
Hình 4.10 Giao diện trang thống kê sản phẩm bán ra 52
Trang 8LỜI MỞ ĐẦU
Với sự phát triển nhảy vọt của công nghệ thông tin, Internet ngày càng giữ vai
trò quan trọng trong các lĩnh vực khoa học kỹ thuật và đời sống, kéo theo đó, việc kinhdoanh và bán hàng online chưa bao giờ diễn ra sôi nổi và mạnh mẽ như hiện nay Khi mà rất nhiều người trên thế giới đều sử dụng Internet và xem đây là nơi lý tưởng để tìm kiếm thông tin, mua sắm hàng hóa, dịch vụ thì Website được xem là chiến lược mang lại hiệu quả cao bên cạnh các trang mạng xã hội Các Website phục vụ từ việc trưng bày, cung cấp thông tin, giới thiệu hàng hóa, cung ứng dịch vụ, thanh toán cũng như dịch vụ sau khi bán hàng Việc trao đổi thông tin thương mại đều được thực hiện trên các phương tiện công nghệ điện tử mà không phải in ra giấy trong bất cứ quá trìnhgiao dịch nào Việc sử dụng Website kinh doanh mang lại rất nhiều lợi ích như tăng doanh thu, tiết kiệm chi phí, giúp quảng bá thương hiệu, tăng khả năng cạnh tranh,
Bên cạnh sự phát triển của hình thức thương mại trực tuyến, có rất nhiều kẻ xấumuốn lợi dụng các lỗ hổng vì các mục đích xấu Đặc biệt là trong thời gian qua xảy ra rất nhiều vụ việc tấn công, đánh cắp dữ liệu, gây nhiều ảnh hưởng xấu đến cả nhà cungcấp và khách hàng Các nhóm tội phạm sử dụng nhiều hình thức tấn công như DDoS, DoS, CSRF, và đặc biệt là SQL Injection, gây ra nhiều thiệt hại cho nền kinh tế.
Hiểu được các vấn đề đó cũng như mong muốn đưa thương mại điện tử đến với
nhiều người hơn chúng em thực hiện đề tài: Xây dựng website bán hàng tích hợp chống tấn công SQL Injection Với mục đích xây dựng một hệ thống bán hàng qua
mạng uy tín, đơn giản, thân thiện, cũng như đem lại cho khách hàng những lựa chọn tối ưu để ngay cả những người không có kiến thức về tin học cũng có thể tham gia mua hàng qua mạng chỉ với một số thao tác đơn giản.
Do còn nhiều hạn chế về kiến thức, thời gian nên chúng em chỉ giới hạn phạm vi đề tài ở việc phát triển website, nghiên cứu về cách tấn công và phòng thủ SQL Injection
Chúng em xin chân thành cảm ơn cô ThS Lê Thị Hồng Vân đã giúp đỡ chúng em thực hiện đề tài này!
Trang 9CHƯƠNG 1.GIỚI THIỆU CHUNG VÀKHẢO SÁT HỆ THỐNG
1.1.Giới thiệu chung về các ngôn ngữ
1.1.1 Tổng quan về HTMLKhái niệm HTML
HTML là viết tắc của cụm từ HyperText Markup Language, tạm dịch là ngôn ngữ đánh dấu siêu văn bản Phiên bản đầu tiên được ra đời vào năm 1991 Một tập tin HTML chẳng qua là một tập tin bình thường, có đuôi html hoặc htm Trải qua nhiều phiên bản đến 2014 đã được nâng cấp lên thành HTML với nhiều thẻ mới được bổ sung
HTML đóng vai trò tạo dựng nên bộ khung xương cho trang web Khi viết các trình duyệt như Chrome, Firefox, Opera sẽ hiểu được và hiển thị để cho người dùng dễdàng nhìn thấy hơn Tuy nhiên cần có sự góp mặt của ngôn ngữ CSS, sẽ định dạng hiển thị trở nên đẹp mắt hơn.
Cấu trúc chung của một trang HTML
<title> Tiêu đề của trang Web </title></head>
1 Thẻ <head> </head>: Tạo đầu mục trang
2 Thẻ <title> </title>: Tạo tiêu đề trang trên thanh tiêu đề, đây là thẻ bắt buộc
Thẻ title cho phép bạn trình bày chuỗi trên thanh tựa đề của trang Web mỗi khi trang Web đó được duyệt trên trình duyệt Web.
3 Thẻ <body> </body>: Tất cả các thông tin khai báo trong thẻ <body> đều có
thể xuất hiện trên trang Web Những thông tin này có thể nhìn thấy trên trang Web.
4 Thẻ hình ảnh <img>: Cho phép bạn chèn hình ảnh vào trang Web Thẻ này
thuộc loại thẻ không có thẻ đóng.
5 Thẻ liên kết <a> </a>: Là loại thẻ dùng để liên kết giữa các trang Web hoặc
liên kết đến địa chỉ Internet, Mail hay Intranet(URL) và địa chỉ trong tập tin trong mạng cục bộ (UNC).
Trang 101.1.2 Tổng quan về CSSKhái niệm CSS
CSS là chữ viết tắt của Cascading Style Sheets, nó là một ngôn ngữ được sử dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngôn ngữ đánh dấu (HTML) Nói ngắn gọn hơn là ngôn ngữ tạo phong cách cho trang web Bạn có thể hiểu đơn giản rằng, nếu HTML đóng vai trò định dạng các phần tử trên website như việc tạo ra các đoạn văn bản, các tiêu đề, bảng,…thì CSS sẽ giúp chúng ta có thể thêm style vào các phần tử HTML đó như đổi bố cục, màu sắc trang, đổi màu chữ, font chữ, thay đổi cấu trúc…
CSS được phát triển bởi W3C (World Wide Web Consortium) vào năm 1996, vì HTML không được thiết kế để gắn tag để giúp định dạng trang web.
Phương thức hoạt động của CSS là nó sẽ tìm dựa vào các vùng chọn, vùng chọn có thể là tên một thẻ HTML, tên một ID, class hay nhiều kiểu khác Sau đó là nó sẽ áp dụng các thuộc tính cần thay đổi lên vùng chọn đó.
Mối tương quan giữa HTML và CSS rất mật thiết HTML là ngôn ngữ markup (nền tảng của site) và CSS định hình phong cách (tất cả những gì tạo nên giao diện website), chúng là không thể tách rời.
● Border: Là đường liền nằm ngay bên ngoài phần đệm.
● Margin: Là khoảng cách xung quanh bên ngoài của phần tử.
vùng chọn { thuộc tính : giá trị; thuộc tính: giá trị; }
CSS sẽ được khai báo bằng vùng chọn, sau đó các thuộc tính và giá trị sẽ nằm bên trong cặp dấu ngoặc nhọn {} Mỗi thuộc tính sẽ luôn có một giá trị riêng, giá trị cóthể là dạng số, hoặc các tên giá trị trong danh sách có sẵn của CSS Phần giá trị và thuộc tính phải được cách nhau bằng dấu hai chấm, và mỗi một dòng khai báo thuộc tính sẽ luôn có dấu chấm phẩy ở cuối Một vùng chọn có thể sử dụng không giới hạn thuộc tính.
Trang 11Cách nhúng CSS vào website
Để CSS có thể thực thi trên website hoặc HTML Documents thì phải tiến hành nhúng CSS vào website Nếu không, các định dạng CSS sẽ không thực thi trên HTML.Có 3 cách nhúng CSS vào website:
● Inline CSS – Nhúng trực tiếp vào tài liệu HTML thông qua cặp thẻ <style> </style>.
● Internal CSS – dùng thẻ <style> bên trong thẻ <head> của HTML để tạo ra nơi viết mã CSS.
● External CSS – Tạo một tập tin css riêng và nhúng vào tài liệu HTML thôngqua cặp thẻ <link>.
Inline CSS
Đặt thuộc tính style vào thẻ mở của phần tử HTML, giá trị của thuộc tính style là các cặp thuộc tính định dạng CSS Mã CSS chỉ tác động nên chính phần tử đó.
Internal CSS
Đặt các cặp thuộc tính định dạng CSS vào bên trong cặp thẻ <style
type=”text/css”> </style> Cặp thẻ <style type=”text/css”></style> thì được đặt bên trong cặp thẻ <head></head>
External CSS
Với External CSS: Ta đặt các thuộc tính định dạng vào bên trong tập tin CSS Đây là một tập tin hoàn toàn độc lập so với file (File này thường được đặt phần mở rộng là css) sau đó dùng thẻ link <link rel=”stylesheet” type=”text/css” href=”đường dẫn đến tập tin CSS”> đặt ở phần head (cặp thẻ <head></head> của các tập tin HTML) để có thể thực hiện nhúng tập tin CSS vào trang web.
1.1.3 Tìm hiểu về ngôn ngữ JavascriptKhái niệm Javascript
JavaScript là một trong số các ngôn ngữ lập trình chính trong thiết kế website bên cạnh HTML và CSS Chúng được tích hợp, nhúng vào HTML để tạo web động, tăng tính tương tác và phát triển những ứng dụng mạng chạy trên máy chủ/ client.
Một số thư viện, khung viết từ JavaScript:
- js: Ứng dụng thời gian thực- jQuery: Chuyên hiệu ứng
- ReactJS: Chuyên xây dựng ứng dụng di động- AngularJS: Chuyên viết ứng dụng cá nhân.
Trang 12Ưu, nhược điểm của JavaScript
Ưu điểm của JavaScript:
- Dễ hiểu, dễ học hơn so với các ngôn ngữ lập trình khác- Dễ dàng phát hiện và khắc phục, sửa chữa lỗi- Hoạt động được trên nhiều nền tảng trình duyệt- Hỗ trợ web tương tác hiệu quả với người truy cập.
- Tiết kiệm lưu lượng tải dữ liệu cho máy chủ (server) do người dùng sẽ xác nhậninput (đầu vào) rồi mới gửi web đến máy chủ.
- Ngôn ngữ lập trình JavaScript cho phép tạo nhiều giao diện khác nhau.- Phản hồi tức thời đến người truy cập.
Nhược điểm của JavaScript:
- Chỉ chạy được trong trình duyệt web- Bị khai thác dễ dàng
- Không đồng nhất do mỗi thiết bị sẽ được triển khai khác nhau- Dễ bị sử dụng để thực thi mã độc trên máy người sử dụng.
Cách thức hoạt động và ứng dụng của Javascript
Cách thức JavaScript hoạt động: Ngôn ngữ JavaScript được nhúng trực tiếp
vào website hay được tham chiếu qua thư mục js riêng biệt, Script sau khi đượctải về máy sẽ được xử lý tại chỗ
Sự khác biệt giữa các ngôn ngữ lập trình với JavaScript
Java và JavaScript có phải là một?
Nhiều người thường lầm tưởng Java và JavaScript là một nhưng thực chất về mặtkỹ thuật, chúng lại không có mối liên hệ gì với nhau, hoàn toàn khác nhau về cách thức hoạt động cũng như ứng dụng.
Trang 13- Cả hai đều dùng cú pháp C
- Được sử dụng nhiều trong ứng dụng phía máy người dùng.
- Là ngôn ngữ lập trình tĩnh- Hoạt động độc lập, dựa trên class (lớp) và trên nhiều nền tảng.
- Phải sử dụng bộ nhớ nhiều.- Chủ yếu sử dụng cho các ứng dụng bên máy chủ.
- Cần có máy ảo Java để chạy và phải biên dịch thành mã bytemới có thể sử dụng.
- Phù hợp với các ứng dụng chạy trên nền tảng di động.- Khó đọc, khó học, khó viết mã.
- Là ngôn ngữ lập trình động- Hoạt động phụ thuộc với HTML, CSS để tạo các nội dung động trên website.
- Sử dụng ít bộ nhớ hơn.- Chủ yếu sử dụng trong lập trìnhở phía khách hàng.
Ngôn ngữ đánhdấu, có vai tròchính trong việc
định dạng/ xâydựng bố cục
Hỗ trợ GGWebmaster trong
việc định nghĩacác loại nội dung
và tạo style choweb.
Dạng ngôn ngữserver (máy chủ),
được sử dụngtrong hệ thốngquản trị nội dung
nền PHP nhưWP.Bảng 1.2 Phân biệt giữa các ngôn ngữ
Trang 141.1.4 Cơ sở dữ liệu MYSQLGiới thiệu cơ sở dữ liệu
MySQL là một trong những ứng dụng cơ sở dữ liệu mã nguồn mở phổ biến nhất hiện nay (theo www mysql com) và được sử dụng phối hợp với PHP Trước khi làm việc với MySQL cần xác định các nhu cầu cho ứng dụng
MySQL là cơ sở dữ có trình giao diện trên Windows hay Linux, cho phép người sử dụng có thể thao tác các hành động liên quan đến nó Việc tìm hiểu từng công nghệ trước khi bắt tay vào việc viết mã kịch bản PHP, việc tích hợp hai công nghệ PHP và MySQL là một công việc cần thiết và rất quan trọng
Mục đích sử dụng
Mục đích sử dụng cơ sở dữ liệu bao gồm các chức năng như: lưu trữ (storage), truy cập (accessibility), tổ chức (organization) và xử lí (manipulation).
❖ Lưu trữ: Lưu trữ trên đĩa và có thể chuyển đổi dữ liệu từ cơ sở dữ liệu này
sang cơ sở dữ liệu khác, nếu bạn sử dụng cho quy mô nhỏ, bạn có thể chọn cơ sở dữ liệu nhỏ như: Microsoft Exel, Microsoft Access, MySQL, Microsoft Visual FoxPro… Nếu ứng dụng có quy mô lớn, bạn có thể chọn cơ sở dữ liệu có quy mô lớn như: Oracle, SQL Server…
❖ Truy cập: Truy cập dữ liệu phụ thuộc vào mục đích và yêu cầu của người sử
dụng, ở mức độ mang tính cục bộ, truy cập cơ sỏ dữ liệu ngay trong cơ sở dữ liệu với nhau, nhằm trao đổi hay xử lí dữ liệu ngay bên trong chính nó, nhưng do mục đích và yêu cầu người dùng vượt ra ngoài cơ sở dữ liệu, nên bạn cần có các phương thức truy cập dữ liệu giữa các cơ sở dử liệu với nhau như: Microsoft Access với SQL Server, hay SQL Server và cơ sở dữ liệu Oracle
❖ Tổ chức: Tổ chức cơ sở dữ liệu phụ thuộc vào mô hình cơ sở dữ liệu, phân tích
và thiết kế cơ sở dữ liệu tức là tổ chức cơ sở dữ liệu phụ thuộc vào đặc điểm riêng của từng ứng dụng Tuy nhiên khi tổ chức cơ sở dữ liệu cần phải tuân theomột số tiêu chuẩn của hệ thống cơ sở dữ liệu nnhằm tăng tính tối ưu khi truy cập và xử lí.
❖ Xử lí: Tùy vào nhu cầu tính toán và truy vấn cơ sở dữ liệu với các mục đích
khác nhau, cần phải sử dụng các phát biểu truy vấn cùng các phép toán, phát biểu của cơ sở dữ liệu để xuất ra kết quả như yêu cầu Để thao tác hay xử lí dữ liệu bên trong chính cơ sở dữ liệu ta sử dụng các ngôn ngữ lập trình như: PHP, C++, Java, Visual Basic…
Trang 15Các thao tác cập nhật dữ liệu
SELECT( Truy vấn mẫu tin): Select dùng để truy vấn từ một hay nhiều bảng
khác nhau, kết quả trả về là một tập mẫu tin thỏa mãn các điều kiện cho trước nếu có, cú pháp của phát biểu SQL dạng SELECT như sau:
SELECT<danh sách các cột>[FROM<danh sách bảng>][WHERE<các điều kiện ràng buộc>]
[GROUP BY<tên cột/biểu thức trong SELECT>][HAVING<điều kiện bắt buộc của GROUP BY>][ORDER BY<danh sách các cột>]
[LIMIT FromNumber |ToNumber]
❖ INSERT( Thêm mẫu tin):
Trang 16Hiệ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ườingà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.
Thegioididong.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ọnmua và tạo đơn đặt hàng tại hệ thống.
1.1.2 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.
Trang 17nhữ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.
1.1.3 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.
Trang 18- 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.
Trang 19CHƯƠNG 2.XÂY DỰNG HỆ THỐNG2.1.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.
Trang 202.2.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.3.Đặ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
Trang 21Mô 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,
2 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
Tác nhân Administrator hoặc Customer hoặc Guess
Đ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 xem2 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
Điều kiện trước Biểu tượng giỏ hàng được hiển thị
Trang 22Luồ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,
Bảng 2.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
Đ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,
Bảng 2.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
Điều kiện trước Người dùng đang ở trang chủ
Trang 23Luồng sự kiện chính 1 Người dùng bấm đăng ký và nhập các thông tintheo form.
2 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êucầ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
Đ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,
2 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ànhcông.
Bảng 2.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
Điều kiện trước Người dùng đã có tài khoản
Trang 24Luồ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.
2 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.
Bảng 2.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
Điều kiện trước Người dùng đã đăng nhập vào hệ thốngLuồ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
Điều kiện trước Người dùng đã đăng nhập vào hệ thống
Trang 25Luồ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ợplệ thì cập nhật mật khẩu mới vào CSDLLuồ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
Điều kiện trước Administrator đã đăng nhập vào tài khoản của mìnhLuồ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 Hệ thống kiểm tra thông tin sản phẩm được nhập vào, nếu hợp lệ thì thêm vào CSDLLuồng sự kiện phụ 3 Nếu thiếu thông tin hoặc thông tin không hợp lệ
thì không lưu vào CSDL và thông báo thông tinkhông hợp lệ
Bảng 2.12 Đặc tả use case Thêm sản phẩm
Đặc tả use case Sửa thông tin sản phẩm
Mô tả hoạt động diễn ra khi Quản trị viên sửa thông tin sản phẩm
Trang 26Điều kiện trước Administrator đã đăng nhập vào tài khoản của mìnhLuồ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 Hệ thống kiểm tra thông tin sản phẩm được nhập vào, nếu hợp lệ thì thêm vào CSDLLuồng sự kiện phụ 3 Nếu thiếu thông tin hoặc thông tin không hợp lệ
thì không lưu vào CSDL và thông báo thông tinkhông hợp lệ
Bảng 2.13 Đặc tả use case Sửa thông tin sản phẩm
Đặc tả use case Xóa sản phẩm
Mô tả hoạt động diễn ra khi Quản trị viên xoá sản phẩm
Điều kiện trước Administrator đã đăng nhập vào tài khoản của mìnhLuồng sự kiện chính 1 Administrator chọn sản phẩm cần xóa và xác
nhận xóa
2 Hệ thống xoá sản phẩm khỏi CSDL
Bảng 2.14 Đặc tả use case Xoá sản phẩm
Đặc tả use case Xóa thành viên
Mô tả hoạt động khi Quản trị viên xoá tài khoản thành viên
Trang 27Điều kiện trước Administrator đã đăng nhập vào tài khoản của mìnhLuồng sự kiện chính 1 Administrator chọn tài khoản Customer cần
xóa, click xóa và xác nhận xoá2 Hệ thống xoá Customer khỏi CSDL
Bảng 2.15 Đặc tả use case Xoá thành viên
2.4.Biểu đồ hoạt động
Biểu đồ hoạt động Đăng nhập
Mô tả hoạt động của hệ thống khi người dùng đăng nhập
Hình 2.2 Biểu đồ hoạt động Đăng nhập
Biểu đồ hoạt động Đăng xuất
Mô tả hoạt động của hệ thống khi người dùng đăng xuất
Trang 28Hình 2.3 Biểu đồ hoạt động Đăng xuất
Biểu đồ hoạt động Đăng ký thành viên
Mô tả hoạt động của hệ thống khi người dùng đăng ký thành viên mới
Hình 2.4 Biểu đồ hoạt động Đăng ký thành viên