Frontend là giao diện người dùng, nơi ngườidùng tương tác trực tiếp với website để rèn luyện kỹ năng an ninh mạng của mình.Backend là phần xử lý logic và quản lý cơ sở dữ liệu, đảm bảo r
Trang 1KHOA KỸ THUẬT MÁY TÍNH & ĐIỆN TỬ
BÁO CÁO ĐỒ ÁN CƠ SỞ 2
ĐỀ TÀI: XÂY DỰNG WEBSITE LUYỆN TẬP VÀ THI ĐẤU CTF (CAPTURE THE
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT - HÀN
KHOA KỸ THUẬT MÁY TÍNH & ĐIỆN TỬ
BÁO CÁO ĐỒ ÁN CƠ SỞ 2
ĐỀ TÀI: XÂY DỰNG WEBSITE LUYỆN TẬP VÀ THI ĐẤU CTF (CAPTURE THE
Trang 4LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đốivới các thầy cô của trường Đại học Công nghệ thông tin vàTruyền thông Việt – Hàn, đặc biệt là các thầy cô trong hai khoa
là khoa Khoa học máy tính và khoa Kỹ thuật máy tính của trường
đã tạo điều kiện cho em thực hiện đồ án Em cũng xin chânthành cảm ơn cô ThS Trần Thu Thủy và cô ThS Phan Phạm Thị
My Ly đã nhiệt tình hướng dẫn em hoàn thành tốt đồ án này Trong quá trình làm đồ án, khó tránh khỏi sai sót, rất mongcác thầy cô bỏ qua Đồng thời do trình độ lý luận cũng như kinhnghiệm thực tiễn còn hạn chế nên bài báo cáo không thể tránhkhỏi những thiếu sót, em rất mong sẽ nhận được ý kiến đóng gópcủa thầy cô để chúng em học thêm được nhiều kinh nghiệm và sẽhoàn thành tốt hơn các bài báo cáo khác trong những năm tới
Em xin chân thành cảm ơn!
Đà Nẵng, ngày 1 tháng 12 năm 2024
Người thực hiện:
Trần Viết Hoàng – 23NS032
Trang 6NHẬN XÉT
(Của giảng viên hướng dẫn)
-
Trang 7-MỤC LỤC
LỜI CẢM ƠN i
NHẬN XÉT ii
MỤC LỤC iii
DANH MỤC KÝ HIỆU, CÁC CHỮ VIẾT TẮT vi
DANH MỤC HÌNH VẼ, ĐỒ THỊ vii
CHƯƠNG 1 GIỚI THIỆU CHUNG 1
1.1 Tính cấp thiết của đề tài 1
1.2 Mục tiêu của đề tài 2
1.3 Đối tượng và phạm vi nghiên cứu 2
1.4 Phương pháp nghiên cứu 2
1.5 Ý nghĩa lý luận và ý nghĩa thực tiễn của đề tài 3
1.5.1 Ý nghĩa lý luận của đề tài 3
1.5.2 Ý nghĩa thực tiễn của đề tài: 3
1.6 Khảo sát, xác định yêu cầu 4
1.6.1 Mục đích 4
1.6.2 Phạm vi 4
1.7 Bố cục của đề tài 4
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 5
2.1 Cơ sở lý luận và thực tiễn 5
2.1.1 Giới thiệu Website 5
2.1.2 Tổng quan CSS 5
2.1.3 Lợi ích của website 6
2.1.4 Tổng quan HTML 6
2.1.5 Tổng quan về ngôn ngữ lập trình Javascript 6
2.1.6 Tổng quan về phpMyAdmin 7
2.1.7 Tổng quan về PHP 8
2.1.8 Tổng quan về MySQL 10
2.1.9 Tổng quan về công cụ Visual Studio Code 11
2.2 Giới thiệu sơ lược về các thư viện hỗ trợ 12
2.2.1 Thư viện Laravel 12
Trang 82.3 Hướng tiếp cận của đề tài 13
2.3.1 Giới thiệu đồ án 14
2.3.2 Quy mô website 14
CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 15
3.1 Đặc tả yêu cầu phần mềm (Software Requirements) 15
3.1.1 Người dùng chưa đăng ký 15
3.1.2 Người dùng đã đăng ký 15
3.1.3 Quản trị viên 15
3.2 Sơ đồ Use-case 16
3.2.1 Sơ đồ Use-case tổng quát 16
3.2.2 Sơ đồ phân rã Use-case cho người dùng 17
3.2.3 Sơ đồ phân rã Use-case cho quản trị viên 18
3.3 Sơ đồ lớp (Class Diagram) 19
3.4 Sơ đồ hoạt động (Activity Diagram) 20
3.4.1 Sơ đồ hoạt động tổng quát 20
3.4.2 Sơ đồ hoạt động trang đăng nhập/đăng ký 21
3.4.3 Sơ đồ hoạt động trang luyện tập 21
3.4.4 Sơ đồ hoạt động trang đội thi 22
3.4.5 Sơ đồ hoạt động trang thi đấu 23
3.5 Sơ đồ tuần tự (Sequence Diagram) 24
3.5.1 Sơ đồ tuần tự trang đăng nhập/đăng ký 24
3.5.2 Sơ đồ tuần tự trang đội thi 25
3.5.3 Sơ đồ tuần tự trang luyện tập 26
3.5.4 Sơ đồ tuần tự trang thi đấu 26
CHƯƠNG 4 XÂY DỰNG CHƯƠNG TRÌNH VÀ KIỂM THỬ 27
4.1 Thiết kế giao diện 27
4.2 Giao diện website: 27
4.2.1 Giao diện trang chủ 27
4.2.2 Giao diện đăng nhập/đăng ký 28
4.2.3 Giao diện luật thi đấu 29
4.2.4 Giao diện trang danh sách người dùng 30
Trang 94.2.5 Giao diện trang danh sách đội thi 30
4.2.6 Giao diện trang luyện tập 31
4.2.7 Giao diện trang tạo/tham gia đội thi 31
4.2.8 Giao diện trang thi đấu 32
4.2.9 Giao diện trang nộp cờ 33
4.2.10 Giao diện trang bảng xếp hạng 33
4.2.11 Giao diện trang người dùng 34
4.2.12 Giao diện trang thông tin đội thi 34
4.2.13 Giao diện trang quản trị viên 35
4.2.14 Giao diện trang cài đặt 35
4.3 Kiểm thử và đánh giá 35
4.3.1 Kiểm thử 35
4.3.2 Đánh giá 36
CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 37
5.1 Kết quả đạt được: 37
5.2 Hướng nghiên cứu phát triển 38
TÀI LIỆU THAM KHẢO 39
Trang 11DANH MỤC HÌNH VẼ, ĐỒ THỊ
Hình 2.1 Logo CSS 13
Hình 2.2 Logo HTML 14
Hình 2.3 Logo JavaScript 15
Hình 2.4 Logo phpMyAdmin 16
Hình 2.5 Logo PHP 17
Hình 2.6 Logo MySQL 19
Hình 2.7 Logo Visual Studio Code 20
Hình 2.8 Logo Laravel 21
Hình 3.1 Sơ đồ Use-case tổng quát 24
Hình 3.2 Sơ đồ phân rã Use-case cho người dùng 25
Hình 3.3 Sơ đồ phân rã Use-case cho quản trị viên 26
Hình 3.4 Sơ đồ lớp (Class Diagram) 27
Hình 3.5 Sơ đồ hoạt động tổng quát 28
Hình 3.6 Sơ đồ hoạt động trang đăng nhập/đăng ký 29
Hình 3.7 Sơ đồ hoạt động trang luyện tập 29
Hình 3.8 Sơ đồ hoạt động trang luyện tập 30
Hình 3.9 Sơ đồ hoạt động trang thi đấu 31
Hình 3.10 Sơ đồ tuần tự trang đăng nhập/đăng ký 32
Hình 3.11 Sơ đồ tuần tự trang đội thi 33
Hình 3.12 Sơ đồ tuần tự trang luyện tập 34
Hình 3.13 Sơ đồ tuần tự trang thi đấu 34
Hình 4.1 Giao diện trang chủ 35
Hình 4.2 Giao diện đăng nhập 36
Hình 4.3 Giao diện đăng ký 36
Trang 12Hình 4.4 Giao diện sau khi đăng nhập thành công 37
Hình 4.5 Giao diện trang luật thi đấu 37
Hình 4.6 Giao diện danh sách người dùng 38
Hình 4.7 Giao diện danh sách đội thi 38
Hình 4.8 Giao diện trang luyện tập 39
Hình 4.9 Giao diện trang tạo đội thi 39
Hình 4.10 Giao diện trang tham gia đội thi 40
Hình 4.11 Giao diện trang thi đấu 40
Hình 4.12 Giao diện trang nộp cờ 41
Hình 4.13 Giao diện trang bảng xếp hạng 41
Hình 4.14 Giao diện trang người dùng 42
Hình 4.15 Giao diện trang thông tin đội thi 42
Hình 4.16 Giao diện trang quản trị viên 43
Hình 4.17 Giao diện trang cài đặt 43
Trang 13CHƯƠNG 1 GIỚI THIỆU CHUNG
1.1 Tính cấp thiết của đề tài
Đề tài "Xây dựng website luyện tập và thi đấu CTF (CaptureThe Flag)" mang lại nhiều lợi ích và có tính cấp thiết trong nhiềukhía cạnh:
Đào tạo nhân lực ngành an ninh mạng hiện nay: Với bối cảnh
ngành an ninh mạng đang trở thành mối quan tâm hàngđầu với thế giới trong đó có Việt Nam Việc đào tạo độinhân lực cho ngành an ninh mạng là vô cùng cần thiết CTF
là hình thức thi đấu thực tế, giúp nâng cao kỹ năng thựchành bảo mật, điều tra, phân tích lỗ hổng Các cuộc thiCTF giúp người tham gia rèn luyện tư duy, kỹ năng giảiquyết vấn đề, và cập nhật những kiến thức mới
Thiếu môi trường thực hành chuyên nghiệp: Tại Việt
Nam, số lượng website rèn luyện kĩ năng bảo mật cho sinhviên và người đi làm đang còn khá ít Hầu hết các nơi rènluyện đều là các website của các trường đại học, tổ chứcđến từ ngoài nước Ngay tại trường Đại học Công nghệthông tin và Truyền thông Việt-Hàn, Đại học Đà Nẵng mớichỉ có một website duy nhất phục vụ cho việc thi đấu CTFnhưng chưa hoạt động rộng rãi
Thúc đẩy phong trào CTF: Tại VKU, phong trào CTF
trong sinh viên mới chỉ phát triển trong 2 năm trở lại đâynhưng vẫn chưa phổ biến với đa số sinh viên theo họcngành An toàn thông tin và Công nghệ thông tin Các cuộcthi CTF vẫn chưa thực sự thu hút được các bạn sinh viêntrong nhà trường tham gia
Góp phần nâng cao nhận thức về an ninh mạng:
Website nhằm phục vụ cho sinh viên, người đi làm và được
Trang 14sử dụng để phổ biến kiến thức cơ bản về an ninh mạng chongười dùng phổ thông, giảm thiểu rủi ro từ các cuộc tấncông mạng.
Khuyến khích học tập thông qua thực hành: CTF
không chỉ là một cuộc thi mà còn là hình thức học tập quatrải nghiệm, giúp sinh viên và người đi làm nắm vững kiếnthức lý thuyết thông qua các bài toán thực tế Các thửthách trong CTF có thể mô phỏng các tình huống tấn côngthực tế, giúp người học nhanh chóng làm quen và giảiquyết các vấn đề phức tạp
Tóm lại, đề tài này không chỉ mang tính cấp thiết trong việc đàotạo nguồn nhân lực an ninh mạng, mà còn góp phần nâng cao nhậnthức và trình độ bảo mật thông tin trong cộng đồng
1.2 Mục tiêu của đề tài
Ưu tiên giao diện của website được được thiết kế theo phongcách đơn giản kết hợp với các màu sắc nhẹ nhàng, giúp cho ngườidùng không cảm thấy rối mắt khi truy cập vào website Cung cấpcác thông tin chính xác cho người dùng dễ nắm bắt, dễ sử dụng Xâydựng hệ thống luyện tập và thi đấu với đa dạng các thử thách Có hệthống xếp hạng cho việc thi đấu để khuyến khích người tham gia
1.3 Đối tượng và phạm vi nghiên cứu
Đối tượng của nghiên cứu này bao gồm các website luyện tập và thi đấu CTF trênthế giới Các kỹ thuật, phương pháp xây dựng và triển khai website CTF Các phươngpháp bảo mật hệ thống, bảo vệ dữ liệu người dùng khi truy cập vào website
Phạm vi nghiên cứu của đề tài tập trung vào các thành phần cấu thành nênwebsite, bao gồm frontend và backend Frontend là giao diện người dùng, nơi ngườidùng tương tác trực tiếp với website để rèn luyện kỹ năng an ninh mạng của mình.Backend là phần xử lý logic và quản lý cơ sở dữ liệu, đảm bảo rằng quá trình ngườidùng sử dụng đạt hiệu quả Triển khai một cách chính xác và hiệu quả cả hai phần này
sẽ đóng vai trò quan trọng trong việc cung cấp một trải nghiệm người dùng tốt nhấttrên website
Trang 151.4 Phương pháp nghiên cứu
Phương pháp nghiên cứu cho đề tài này sẽ bao gồm hai phầnchính: phân tích và khảo sát cũng như triển khai thực nghiệm
Triển khai thực nghiệm:
- Xây dựng và triển khai website dựa trên các yêu cầu vàphân tích từ phần trước
- Thực nghiệm và kiểm thử tính năng của website với mộtnhóm người dùng thử nghiệm để thu thập phản hồi và đánhgiá hiệu suất của website
- Đánh giá sự đáp ứng của website đối với nhu cầu và mongmuốn của người dùng, cũng như tính chính xác và đáng tincậy của hệ thống
Phương pháp này sẽ giúp đảm bảo rằng website được xây dựngđáp ứng được các yêu cầu của người dùng và mang lại giá trị thực
sự trong việc rèn luyện kỹ năng an ninh mạng
1.5Ý nghĩa lý luận và ý nghĩa thực tiễn của đề tài
1.5.1 Ý nghĩa lý luận của đề tài
Đề tài giúp bổ sung kiến thức về cách xây dựng và triển khaicác hệ thống web phục vụ cho các cuộc thi CTF Qua đó, hiểu rõ hơn
về các nguyên tắc phát triển website, đặc biệt là các yêu cầu về bảomật Đồng thời, giúp nghiên cứu sâu hơn về mô hình tổ chức các
Trang 16cuộc thi CTF và cách áp dụng vào thực tế, góp phần hoàn thiện lýthuyết về giáo dục và thi đấu trực tuyến trong lĩnh vực này.
1.5.2 Ý nghĩa thực tiễn của đề tài:
Website này không chỉ giúp tạo ra sân chơi cho những ngườiđam mê an ninh mạng mà còn giúp họ nâng cao kỹ năng thông quacác thử thách thực tế Đề tài có thể được ứng dụng trong các trườnghọc hoặc cộng đồng để tổ chức các cuộc thi CTF, từ đó phát hiện vàbồi dưỡng nhân tài trong lĩnh vực an ninh mạng Bên cạnh đó,website cũng tạo cơ hội để người dùng thực hành, thi đấu và học hỏilẫn nhau, góp phần xây dựng cộng đồng an ninh mạng mạnh hơn
1.6Khảo sát, xác định yêu cầu
1.6.1 Mục đích
Giai đoạn này tập trung vào việc thu thập thông tin và tài liệuliên quan đến giao diện của trang web, nhằm xác định các vấn đềcần giải quyết trước khi bắt đầu thiết kế và xây dựng trang web Nộidung cần khảo sát phải phù hợp với yêu cầu của người sử dụng vàquy mô của một trang web về lĩnh vực giáo dục và an ninh mạng Việc phân tích và xác định rõ yêu cầu của người dùng là rấtquan trọng để hiểu được mục đích và mong muốn của họ đối vớitrang web Cần tìm hiểu đầy đủ về các tính năng, chức năng, giaodiện, nội dung và các yêu cầu khác của trang web Điều này giúpngười phát triển có cái nhìn tổng quan về yêu cầu của người dùng
và có thể đưa ra các giải pháp phù hợp
Đích đến cuối cùng của công việc phân tích là tạo ra đặc tả yêucầu, là tài liệu ràng buộc giữa người dùng và người phát triển để đạtđược mục tiêu chung đó là tạo ra một trang web chuyên nghiệp,thân thiện với người sử dụng và đáp ứng đầy đủ các yêu cầu củangười dùng
Trang 171.7 Bố cục của đề tài
Nội dung của đồ án gồm có 3 chương:
- Chương 1: Giới thiệu chung
- Chương 2: Cơ sở lý thuyết
- Chương 3: Phân tích và thiết kế hệ thống
- Chương 4: Xây dựng website và kiểm thử
- Chương 5: Kết luận và hướng phát triển
Trang 18CHƯƠNG 2.CƠ SỞ LÝ THUYẾT
2.1 Cơ sở lý luận và thực tiễn
2.1.1 Giới thiệu Website [1]
- Website hay còn gọi là trang web, là một tập hợp trang web,thường chỉ nằm trong một tên miền hoặc tên miền phụ trênWorld Wide Web của Internet Một trang web là tập tin HTMLhoặc XHTML có thể truy nhập dùng giao thức HTTP Trang mạng
có thể được xây dựng từ các tệp tin HTML (trang mạng tĩnh) hoặcvận hành bằng các CMS chạy trên máy chủ (trang mạng động)
- Trang mạng có thể được xây dựng bằng nhiều ngôn ngữ lập trìnhkhác nhau (PHP, Java, )
- Để một website hoạt động cần 3 yếu tố:
Cần có tên miền (domain)
Nơi lưu trữ website (server)
Nội dung các trang web hoặc cơ sở dữ liệu thông tin
2.1.2 Tổng quan CSS [2]
- CSS là chữ viết tắt của Cascading Style Sheets, nó là một ngônngữ đượ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 (ví dụ như HTML)
- Có thể hiểu đơn giản rằng, nếu HTML đóng vai trò định dạngcác phần tử trên website như việc tạo ra các đoạn văn bản, cáctiêu đề, bảng,…thì CSS sẽ giúp chúng ta có thể thêm một chút
“phong cách” vào các phần tử HTML đó như đổi màu sắc trang,đổi màu chữ, thay đổi cấu trúc,…rất nhiều
Trang 19Hình CƠ SỞ LÝ THUYẾT.1 Logo CSS
2.1.3 Lợi ích của website
- Tăng khả năng tiếp cận khách hàng
- Tăng năng lực cạnh tranh
- Cập nhật thông tin một cách nhanh chóng
- Dễ dàng lấy ý kiến phản hồi từ khách hàng
- Phân tích sản phẩm
2.1.4 Tổng quan HTML [3]
- HTML (viết tắt của từ Hypertext Markup Language, hay là
"Ngôn ngữ Đánh dấu Siêu văn bản") là một ngôn ngữ đánh dấuđược thiết kế ra để tạo nên các trang web trên World Wide Web.Cùng với CSS và JavaScript, HTML là một trong những ngôn ngữquan trọng trong lĩnh vực thiết kế website
- Hiện nay, phiên bản mới nhất của ngôn ngữ này là HTML5
Trang 20Hình CƠ SỞ LÝ THUYẾT.2 Logo HTML
2.1.5 Tổng quan về ngôn ngữ lập trình Javascript [4]
- JavaScript là một ngôn ngữ lập trình dựa trên nguyên mẫu với cúpháp phát triển từ C Giống như C, JavaScript có khái niệm từkhoá, do đó, JavaScript gần như không thể được mở rộng.Cũnggiống như C, JavaScript không có bộ xử lý xuất/nhập(input/output) riêng
- Thư viện JavaScript nổi tiếng:
Bộ khung Prototype kết hợp với thư viện Scriptaculous
Thư viện jQuery, tiết kiệm thời gian viết mã lệnh cũng nhưcung cấp các hàm tương tác với DOM trên các trình duyệtkhác nhau
Nodejs, hệ thống chương trình giúp chạy JavaScript ngoàitrình duyệt
Hình CƠ SỞ LÝ THUYẾT.3 Logo JavaScript
Trang 212.1.6 Tổng quan về phpMyAdmin
- phpMyAdmin là một công cụ quản trị cơ sở dữ liệu MySQL đượcphát triển dành riêng cho môi trường web Dưới đây là một tổngquan về phpMyAdmin:
Quản lý Cơ Sở Dữ Liệu MySQL:
phpMyAdmin cung cấp giao diện web đồ họa cho việc quản
lý cơ sở dữ liệu MySQL một cách dễ dàng và thuận tiện
Nó cho phép người quản trị cơ sở dữ liệu thực hiện các tác vụnhư tạo cơ sở dữ liệu mới, bảng, chỉnh sửa cấu trúc bảng, vàthêm/xóa dữ liệu
Hỗ Trợ Nhiều Chức Năng:
phpMyAdmin cung cấp một loạt các chức năng quản trị cơ sở
dữ liệu như quản lý người dùng và quyền truy cập, sao lưu vàkhôi phục cơ sở dữ liệu, thực thi các truy vấn SQL, và nhiềutính năng khác
Nó cũng cung cấp một trình soạn thảo SQL tích hợp chophép người dùng tạo và chỉnh sửa các truy vấn một cáchthuận tiện
Người dùng có thể tải và cài đặt phpMyAdmin một cách miễnphí từ trang web chính thức hoặc sử dụng các gói cài đặt cósẵn trên các hệ điều hành
Hỗ Trợ và Cộng Đồng:
Trang 22 phpMyAdmin có một cộng đồng lớn và tích cực, với nhiều tàiliệu, hướng dẫn và diễn đàn trực tuyến để giúp người dùnggiải quyết các vấn đề và học hỏi từ nhau.
- Tóm lại, phpMyAdmin là một công cụ quản trị cơ sở dữ liệuMySQL mạnh mẽ và linh hoạt, giúp người dùng quản lý và tươngtác với cơ sở dữ liệu MySQL một cách dễ dàng thông qua giaodiện web
Hình CƠ SỞ LÝ THUYẾT.4 Logo phpMyAdmin
2.1.7 Tổng quan về PHP
- PHP (Hypertext Preprocessor) là một ngôn ngữ lập trình mãnguồn mở được sử dụng chủ yếu cho việc phát triển ứng dụngweb Dưới đây là một tổng quan về PHP:
Trang 23 PHP hỗ trợ nhiều cơ sở dữ liệu phổ biến như MySQL,PostgreSQL, và SQLite, cho phép tương tác dễ dàng với dữliệu.
Nó có thể chạy trên nhiều hệ điều hành như Windows,macOS, và Linux
Cộng đồng PHP rất lớn và phong phú, cung cấp hàng nghìnthư viện và framework để giúp phát triển ứng dụng một cáchnhanh chóng và hiệu quả
- Tóm lại, PHP là một ngôn ngữ lập trình mạnh mẽ và linh hoạt,được sử dụng rộng rãi trong việc phát triển các ứng dụng webđộng Điều này là do tính linh hoạt, dễ sử dụng, và tính mở rộngcủa nó, cũng như sự hỗ trợ mạnh mẽ từ cộng đồng lập trình viênPHP
Hình CƠ SỞ LÝ THUYẾT.5 Logo PHP
Trang 24 Hiệu Suất và Khả Năng Mở Rộng:
MySQL được biết đến với hiệu suất cao và khả năng mở rộng tốt, cho phép
xử lý hàng trăm, thậm chí hàng nghìn truy vấn mỗi giây
Nó hỗ trợ các cấu trúc dữ liệu và chỉ mục phức tạp, cùng với các kỹ thuật tối
ưu hóa để đảm bảo hiệu suất tối ưu
Hỗ Trợ Đa Nền Tảng:
MySQL hoạt động trên nhiều hệ điều hành phổ biến như Windows, macOS
và các bản phân phối của Linux
Điều này làm cho MySQL trở thành lựa chọn phù hợp cho nhiều môi trườngphát triển ứng dụng khác nhau
Trang 25- Tóm lại, MySQL là một hệ quản trị cơ sở dữ liệu mạnh mẽ và linh hoạt, được sửdụng rộng rãi trong cộng đồng phát triển phần mềm và là một trong những lựachọn phổ biến nhất cho việc lưu trữ và quản lý dữ liệu trong các ứng dụng web và
hệ thống thông tin
Hình CƠ SỞ LÝ THUYẾT.6 Logo MySQL
2.1.9 Tổng quan về công cụ Visual Studio Code
- Visual Studio Code (VS Code) là một trình biên tập mã nguồn
mở, được phát triển bởi Microsoft Nó là một trong những công
cụ phổ biến nhất được sử dụng trong cộng đồng lập trình viênhiện nay, đặc biệt là cho việc phát triển phần mềm và ứng dụngweb Dưới đây là một tổng quan về các đặc điểm và tính năngchính của Visual Studio Code:
Đa Nền Tảng: Visual Studio Code hỗ trợ trên nhiều hệ điềuhành phổ biến như Windows, macOS và Linux, cho phép lậptrình viên sử dụng nó trên môi trường làm việc ưa thích củahọ
Nhẹ Nhàng và Linh Hoạt: VS Code được thiết kế để có hiệusuất cao và tối ưu cho việc lập trình Giao diện đơn giản và dễ
sử dụng, với khả năng tùy chỉnh linh hoạt để phù hợp với nhucầu cụ thể của từng người dùng
Hỗ Trợ Ngôn Ngữ Đa Dạng: Visual Studio Code hỗ trợ một loạtcác ngôn ngữ lập trình phổ biến như JavaScript, TypeScript,Python, Java, C#, C++, và nhiều ngôn ngữ khác thông qua cácextension và plugin
Trang 26 Tích Hợp Git: VS Code tích hợp sẵn Git, cho phép lập trìnhviên quản lý phiên bản mã nguồn một cách thuận tiện từ giaodiện của trình biên tập.
Công Cụ Debugging và Profiling: Trình biên tập này cung cấpcác công cụ mạnh mẽ để debug và profile ứng dụng, giúpngười dùng tìm và sửa lỗi một cách hiệu quả
Hỗ Trợ Extension và Plugin: VS Code có một cộng đồng phongphú và năng động, cung cấp hàng ngàn extension và plugincho các tính năng bổ sung như kiểm tra lỗi cú pháp, tự độnghoàn thành mã, quản lý dự án, và nhiều tính năng khác
Cộng Đồng Phát Triển Mạnh Mẽ: Visual Studio Code được xâydựng và duy trì bởi một cộng đồng phát triển rộng lớn, với sựđóng góp từ hàng ngàn lập trình viên trên toàn thế giới
- Tóm lại, Visual Studio Code là một công cụ phát triển mã nguồn
mở mạnh mẽ, linh hoạt và dễ sử dụng, được sử dụng rộng rãitrong cộng đồng lập trình viên và được đánh giá cao về hiệu suất
và khả năng mở rộng
Hình CƠ SỞ LÝ THUYẾT.7 Logo Visual Studio Code
2.2Giới thiệu sơ lược về các thư viện hỗ trợ
2.2.1 Thư viện Laravel
- Laravel là một framework PHP mã nguồn mở, được thiết kế để phát triển các ứng
dụng web theo mô hình MVC (Model-View-Controller) Laravel được tạo ra bởi
Taylor Otwell vào năm 2011 và đã nhanh chóng trở thành một trong nhữngframework PHP phổ biến nhất hiện nay Laravel được sử dụng rộng rãi nhờ các ưuđiểm sau:
Trang 27 Cú pháp đơn giản, dễ hiểu
Laravel cung cấp cú pháp rõ ràng, dễ đọc, giúp người sử dụng viết mã nhanhhơn và dễ bảo trì hơn
Ứng dụng rộng rãi trong các doanh nghiệp:
Laravel được sử dụng rộng rãi trong các dự án lớn của các doanh nghiệp nhờkhả năng mở rộng và bảo mật cao
- Tóm lại, Laravel không chỉ là một framework PHP mạnh mẽ mà còn là một công
cụ giúp các nhà phát triển xây dựng các ứng dụng web chuyên nghiệp, hiệu quả vàbảo mật
Hình CƠ SỞ LÝ THUYẾT.8 Logo Laravel
2.3Hướng tiếp cận của đề tài
Trước tiên, cần tìm hiểu các mô hình thi đấu CTF hiện có và cácnền tảng luyện tập phổ biến nhằm xác định các tính năng cốt lõi cần