Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (579.65 KB, 56 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
HỌC VIỆN KỸ THUẬT MẬT MÃ
<i>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</i>
<b>(Nhóm 44)</b>
<i><b>Giảng viên hướng dẫn: ThS. LÊ THỊ HỒNG VÂN</b></i>
Hà Nội, 11-2022
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2"><b>DANH SÁCH BẢNG BIỂU...5</b>
<b>DANH MỤC HÌNH ẢNH...6</b>
<b>LỜI MỞ ĐẦU...8</b>
<b>CHƯƠNG 1. GIỚI THIỆU CHUNG VÀ KHẢO SÁT HỆ THỐNG...9</b>
<i><b>1.1.Giới thiệu chung về các ngôn ngữ...9</b></i>
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
<i><b>1.2.Tổng quát bài tốn...16</b></i>
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
<b>CHƯƠNG 2. XÂY DỰNG HỆ THỐNG...19</b>
<i><b>2.1.Xác định các tác nhân...19</b></i>
<i><b>2.2.Biểu đồ Use Case tổng quát...20</b></i>
Biểu đồ Use Case tổng quát...20
<i><b>2.3.Đặc tả Use case...20</b></i>
Đặ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
<i><b>2.4.Biểu đồ hoạt động...27</b></i>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">Biể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 Xố sản phẩm...32
Biểu đồ hoạt động xoá thành viên...32
<i><b>2.5.Biểu đồ tuần tự...33</b></i>
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
<i><b>2.7.Lược đồ chi tiết giữa các bảng...40</b></i>
<b>CHƯƠNG 3.TRIỂN KHAI GIẢI PHÁP CHỐNG SQL INJECTION TRÊN WEBSITE41</b><i><b>3.1.Tổng quan về SQL INJECTION...41</b></i>
3.1.1. Tổng quan SQL Injection...41
3.1.2. Tác hại của SQL Injection...41
<i><b>3.2.Cách tấn cơng và phịng tránh SQL Injection...42</b></i>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><i><b>4.2.Đăng nhập, đăng ký tài khoản người dùng...48</b></i>
4.2.1. Giao diện form đăng nhập...48
4.2.2. Giao diện form đăng ký...48
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">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 Xố thành viên...27
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">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 Xố sản phẩm...32
Hình 2.12 Biểu đồ hoạt động xố 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 Xố 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
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">Hì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
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8"><b> 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 </b>
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 tố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
<b>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 </b>
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!
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><b>1.1.Giới thiệu chung về các ngôn ngữ</b>
<i><b>1.1.1. Tổng quan về HTMLKhái niệm HTML</b></i>
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ó đ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.
<i><b>Cấu trúc chung của một trang HTML</b></i>
<title> Tiêu đề của trang Web </title></head>
<b>1. Thẻ <head>...</head>: Tạo đầu mục trang</b>
<b>2. Thẻ <title>...</title>: Tạo tiêu đề trang trên thanh tiêu đề, đây là thẻ bắt buộc. </b>
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.
<b>3. Thẻ <body>...</body>: Tất cả các thơng tin khai báo trong thẻ <body> đều có</b>
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.
<b>4. Thẻ hình ảnh <img>: Cho phép bạn chèn hình ảnh vào trang Web. Thẻ này </b>
thuộc loại thẻ khơng có thẻ đóng.
<b>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 </b>
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).
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"><i><b>1.1.2. Tổng quan về CSSKhái niệm CSS</b></i>
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.
● <b>Border: Là đường liền nằm ngay bên ngoài phần đệm.</b>
● <b>Margin: Là khoảng cách xung quanh bên ngoài của phần tử.</b>
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ẽ ln 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ẽ ln 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.
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11"><i><b>Cách nhúng CSS vào website</b></i>
Để 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>.
<b>Inline CSS</b>
Đặ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ử đó.
<b>Internal CSS</b>
Đặ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>
<b>External CSS</b>
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.
<i><b>1.1.3. Tìm hiểu về ngôn ngữ JavascriptKhái niệm Javascript</b></i>
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.
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12"><i><b>Ưu, nhược điểm của JavaScript</b></i>
<b>Ưu điểm của JavaScript:</b>
- 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.
<b>Nhược điểm của JavaScript:</b>
- 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.
<i><b>Cách thức hoạt động và ứng dụng của Javascript</b></i>
<b>Cách thức JavaScript hoạt động: Ngôn ngữ JavaScript được nhúng trực tiếp </b>
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ỗ
<i><b>Sự khác biệt giữa các ngơn ngữ lập trình với JavaScript</b></i>
<b>Java và JavaScript có phải là một?</b>
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.
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13"><i>- Cả hai đều dùng cú pháp C</i>
<i>- Được sử dụng nhiều trong ứng dụng phía máy người dùng.</i>
<i>- 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.</i>
<i>- 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ủ.</i>
<i>- 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.</i>
<i>- 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ã.</i>
<i>- 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.</i>
<i>- 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.</i>
<i>Ngơn ngữ đánhdấu, có vai trịchính trong việc</i>
<i>định dạng/ xâydựng bố cục</i>
<i>Hỗ trợ GGWebmaster trong</i>
<i>việc định nghĩacác loại nội dung</i>
<i>và tạo style choweb.</i>
<i>Dạng ngôn ngữserver (máy chủ),</i>
<i>được sử dụngtrong hệ thốngquản trị nội dung</i>
<i>nền PHP nhưWP.Bảng 1.2 Phân biệt giữa các ngôn ngữ</i>
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14"><i><b>1.1.4. Cơ sở dữ liệu MYSQLGiới thiệu cơ sở dữ liệu</b></i>
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
<i><b>Mục đích sử dụng</b></i>
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).
<b>❖ 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 </b>
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…
<b>❖ 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ử </b>
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....
<b>❖ 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 </b>
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í.
<b>❖ Xử lí: Tùy vào nhu cầu tính tốn và truy vấn cơ sở dữ liệu với các mục đích </b>
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…
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15"><i><b>Các thao tác cập nhật dữ liệu</b></i>
<b>SELECT( Truy vấn mẫu tin): Select dùng để truy vấn từ một hay nhiều bảng </b>
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:
<i>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>]</i>
<i>[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>]</i>
<i>[LIMIT FromNumber |ToNumber]</i>
<b>❖ INSERT( Thêm mẫu tin): </b>
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">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ườ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.
<i>Thegioididong.com là một trong những website đặc thù áp dụng công nghệ thông</i>
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.
<i><b>1.1.2. Mô tả hoạt động của cửa hàng Ban điều hành</b></i>
- 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.
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">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.
<i><b> Bộ phận quản trị</b></i>
- 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 ln được cập nhật nhanh chóng.
<i><b>1.1.3. u cầu của hệ thống bán hàng qua mạng</b></i>
<b>Nhu cầu người sử dụng</b>
- 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 đó 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 tồ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.
<b> Với người quản trị</b>
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.
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="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 tồ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.
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19"><b>Administrator( Quản trị viên): là thành viên quản trị của hệ thống, có các </b>
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,…
<b>Customer ( Thành viên): là hệ thống thành viên có chức năng: đăng ký, đăng </b>
nhập, tìm kiếm, xem, sửa thơng tin cá nhân, xem giỏ hàng, đặt hàng,...
<b>Guess( Khách vãng lai): là Khách hàng chưa đăng ký, có chức năng: đăng ký, </b>
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.
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20"><b>2.2.Biểu đồ Use Case tổng quát</b>
<i><b>Biểu đồ Use Case tổng quát</b></i>
<i>Hình 2.1 Biểu đồ Use Case tổng quát</i>
<b>2.3.Đặc tả Use case</b>
<i><b>Đặc tả use case Tìm kiếm thơng tin sản phẩm</b></i>
Mơ tả q 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
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">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,...
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
<i>Bảng 2.3 Đặc tả usecase Tìm kiếm thông tin sản phẩm</i>
<i><b>Đặc tả use case Xem thông tin sản phẩm</b></i>
Mơ tả q 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
<i>Bảng 2.4 Đặc tả use case Xem thông tin sản phẩm</i>
<i><b>Đặc tả use case Xem giỏ hàng</b></i>
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ị
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">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,..
<i>Bảng 2.5 Đặc tả use case Xem giỏ hàng</i>
<i><b>Đặc tả use case Thêm sản phẩm vào giỏ hàng</b></i>
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,..
<i>Bảng 2.6 Đặc tả use case Thêm sản phẩm vào giỏ hàng</i>
<i><b>Đặc tả use case Đăng ký thành viên</b></i>
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ủ
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">Luồ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
<i>Bảng 2.7 Đặc tả usecase Đăng ký thành viên</i>
<i><b>Đặc tả use case Đặt hàng</b></i>
Mơ tả q 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à hố đơn, thơng báo đặt hàng thành công hay không thànhcông.
<i>Bảng 2.8 Đặc tả use case Đặt hàng</i>
<i><b>Đặc tả use case Đăng nhập</b></i>
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
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">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.
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.
<i>Bảng 2.9 Đặc tả use case Đăng nhập</i>
<i><b>Đặc tả use case Đăng xuất</b></i>
Mơ tả q 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
<i>Bảng 2.10 Đặc tả use case Đăng xuất</i>
<i><b>Đặc tả use case Đổi mật khẩu</b></i>
Mơ tả q 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
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">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ợ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
<i>Bảng 2.11 Đặc tả use case Đổi mật khẩu</i>
<i><b>Đặc tả use case Thêm sản phẩm</b></i>
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ệ
<i>Bảng 2.12 Đặc tả use case Thêm sản phẩm</i>
<i><b>Đặc tả use case Sửa thông tin sản phẩm</b></i>
Mô tả hoạt động diễn ra khi Quản trị viên sửa thông tin sản phẩm
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="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ệ
<i>Bảng 2.13 Đặc tả use case Sửa thơng tin sản phẩm</i>
<i><b>Đặc tả use case Xóa sản phẩm</b></i>
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
<i>Bảng 2.14 Đặc tả use case Xố sản phẩm</i>
<i><b>Đặc tả use case Xóa thành viên</b></i>
Mơ tả hoạt động khi Quản trị viên xoá tài khoản thành viên
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="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
<i>Bảng 2.15 Đặc tả use case Xoá thành viên</i>
<b>2.4.Biểu đồ hoạt động</b>
<i><b>Biểu đồ hoạt động Đăng nhập</b></i>
Mô tả hoạt động của hệ thống khi người dùng đăng nhập
<i>Hình 2.2 Biểu đồ hoạt động Đăng nhập</i>
<i><b>Biểu đồ hoạt động Đăng xuất</b></i>
Mô tả hoạt động của hệ thống khi người dùng đăng xuất
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28"><i>Hình 2.3 Biểu đồ hoạt động Đăng xuất</i>
<i><b>Biểu đồ hoạt động Đăng ký thành viên</b></i>
Mô tả hoạt động của hệ thống khi người dùng đăng ký thành viên mới
<i>Hình 2.4 Biểu đồ hoạt động Đăng ký thành viên</i>
</div>