Báo cáo Dự án: Xây dựng Website với 10 Lỗ Hổng OWASP Hàng Đầu

Báo cáo dự án IT Base: Xây dựng website với 10 lỗ hổng OWASP hàng đầu. Phân tích chi tiết cách khai thác & phòng chống các nguy cơ bảo mật phổ biến nhất.

Trường đại học

Vietnam – Korea University of Information and Communication Technology

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Báo cáo môn học

2024

43
0
0

Phí lưu trữ

30 Point

Mục lục chi tiết

PREFACE

ACKNOWLEDGEMENTS

1. CHAPTER I. OVERVIEW OF THE TOPIC

1.1. Information about the topic

1.1.1. Introduce the topic and reasons for choosing the topic

1.2. Objectives, meaning and subjects of the topic

1.3. Meaning of the topic

1.4. Technologies used in the topic

1.4.1. Oracle VM Virtual Box

1.4.2. Vmware player

2. CHAPTER II. PROJECT SYSTEM STRUCTURE AND ANALYSIS

2.1. Database

3. CHAPTER III. IMAGES AND PROJECT ACHIEVEMENTS

3.1. Normal user side

3.2. Vulnerabilities have been added to the site

3.2.1. Broken Access Control and Misconfiguration

3.3. Cryptographic Failures

4. CHAPTER IV. CONCLUSION AND DEVELOPMENT DIRECTION

4.1. Advantages and disadvantages of the topic:

4.2. Development direction of the topic:

PHOTO LIST

LIST OF ABBREVIATIONS

Tóm tắt

I. OWASP Top 10 là gì Nền tảng bảo mật ứng dụng web

Trong bối cảnh an ninh mạng ngày càng phức tạp, việc xây dựng và vận hành các hệ thống trực tuyến an toàn là yếu tố sống còn. OWASP Top 10 nổi lên như một tài liệu tiêu chuẩn, cung cấp nhận thức sâu sắc về các lỗ hổng bảo mật web nghiêm trọng nhất. Đây không phải là một danh sách toàn diện, mà là một bản báo cáo tập trung vào 10 rủi ro bảo mật hàng đầu được cộng đồng chuyên gia trên toàn thế giới xác định. Mục tiêu chính của tài liệu này là nâng cao nhận thức của các nhà phát triển, nhà thiết kế, kiến trúc sư và các tổ chức về những mối đe dọa tiềm ẩn trong ứng dụng web. Việc hiểu rõ OWASP Top 10 không chỉ giúp bảo vệ hệ thống khỏi các cuộc tấn công tinh vi mà còn là bước đầu tiên trong việc xây dựng một quy trình lập trình an toàn (secure coding). Báo cáo này được cập nhật định kỳ để phản ánh sự thay đổi của các mối đe dọa và kỹ thuật tấn công mới, đảm bảo tính phù hợp và cập nhật. Như đã nêu trong nghiên cứu của Nguyễn Việt Khang (2024), việc nắm bắt các lỗ hổng này là nền tảng vững chắc để tạo ra các sản phẩm an toàn hơn trong tương lai, giảm thiểu rủi ro cho cả doanh nghiệp và người dùng cuối. Việc áp dụng các nguyên tắc từ OWASP giúp các tổ chức chủ động vá lỗ hổng thay vì chỉ phản ứng sau khi sự cố xảy ra.

1.1. Giới thiệu về sứ mệnh của tổ chức OWASP

OWASP (Open Web Application Security Project) là một tổ chức phi lợi nhuận quốc tế hoạt động với mục tiêu cải thiện bảo mật ứng dụng web. Sứ mệnh của OWASP là làm cho bảo mật ứng dụng trở nên hữu hình, để các cá nhân và tổ chức trên toàn thế giới có thể đưa ra quyết định sáng suốt về các rủi ro bảo mật thực sự. Tổ chức này cung cấp các bài viết, phương pháp luận, tài liệu, công cụ và công nghệ miễn phí, mã nguồn mở. Một trong những sản phẩm nổi bật nhất là danh sách OWASP Top 10, đóng vai trò như một tài liệu nâng cao nhận thức quan trọng cho các nhà phát triển. Bằng cách cung cấp một khuôn khổ rõ ràng về các rủi ro, OWASP giúp định hướng các nỗ lực đánh giá bảo mật và ưu tiên các nguồn lực để khắc phục những vấn đề nghiêm trọng nhất.

1.2. Tầm quan trọng của OWASP Top 10 trong phát triển

Đối với các nhà phát triển, OWASP Top 10 là một công cụ giáo dục vô giá. Nó không chỉ liệt kê các lỗ hổng mà còn giải thích cơ chế hoạt động, tác động tiềm tàng và cách phòng chống chúng. Việc tích hợp kiến thức từ OWASP vào vòng đời phát triển phần mềm (SDLC) giúp tạo ra các sản phẩm an toàn hơn ngay từ đầu. Thay vì xem bảo mật là một bước kiểm tra cuối cùng, các nhóm phát triển có thể áp dụng các phương pháp lập trình an toàn trong suốt quá trình. Tài liệu gốc của Nguyễn Việt Khang (2024) nhấn mạnh rằng việc xây dựng một website mô phỏng các lỗ hổng này cung cấp một môi trường thực tế để học hỏi và thực hành, giúp các nhà phát triển hiểu sâu sắc hơn về cách các cuộc tấn công xảy ra và cách ngăn chặn chúng hiệu quả, từ đó nâng cao chất lượng chung của an ninh mạng.

II. Phân tích 10 lỗ hổng bảo mật web nghiêm trọng nhất

OWASP Top 10 không phải là một danh sách cố định; nó phát triển để phản ánh bối cảnh mối đe dọa luôn thay đổi. Tuy nhiên, một số loại lỗ hổng vẫn luôn hiện hữu và gây ra tác động nghiêm trọng. Các lỗ hổng này thường được phân loại thành các nhóm chính như tấn công chèn mã (Injection), xác thực và kiểm soát truy cập yếu kém, và lỗi cấu hình bảo mật. Ví dụ, SQL InjectionCross-Site Scripting (XSS) là hai trong số các kỹ thuật tấn công lâu đời nhưng vẫn còn rất phổ biến. Báo cáo của Nguyễn Việt Khang (2024) đã mô phỏng thành công các lỗ hổng này, cho thấy chỉ một sơ suất nhỏ trong việc lọc dữ liệu đầu vào cũng có thể mở đường cho kẻ tấn công chiếm quyền kiểm soát cơ sở dữ liệu hoặc thực thi mã độc trên trình duyệt của người dùng. Một nhóm rủi ro quan trọng khác là Broken Authentication (Xác thực bị hỏng) và Broken Access Control (Kiểm soát truy cập bị hỏng), nơi hệ thống không xác minh danh tính hoặc không thực thi các quyền một cách chính xác. Những lỗi này có thể cho phép người dùng thông thường truy cập vào các chức năng quản trị, gây ra hậu quả khôn lường. Hiểu rõ bản chất của từng lỗ hổng bảo mật web là yêu cầu bắt buộc để xây dựng hệ thống phòng thủ hiệu quả.

2.1. Lỗ hổng Injection SQL Injection và XSS

Tấn công Injection xảy ra khi dữ liệu không đáng tin cậy được gửi đến trình thông dịch dưới dạng một phần của lệnh hoặc truy vấn. Dạng phổ biến nhất là SQL Injection, nơi kẻ tấn công chèn các lệnh SQL độc hại vào các trường nhập liệu. Nghiên cứu trường hợp cho thấy, một endpoint API /api/cake/{id} không lọc tham số đầu vào đã cho phép kẻ tấn công truy xuất toàn bộ dữ liệu trong bảng thay vì chỉ một bản ghi. Tương tự, Cross-Site Scripting (XSS) xảy ra khi ứng dụng chèn dữ liệu không được xác thực vào một trang web mới. Trong dự án mô phỏng, chức năng bình luận đã bị khai thác bằng cách chèn thẻ <script>, cho phép thực thi mã tùy ý trên trình duyệt của quản trị viên, dẫn đến nguy cơ đánh cắp cookie phiên.

2.2. Sai sót xác thực Broken Authentication Access Control

Lỗ hổng Broken AuthenticationBroken Access Control là những sai sót nghiêm trọng trong việc quản lý danh tính và quyền truy cập. Báo cáo phân tích cho thấy một lỗi điển hình là mã hóa cookie bằng Base64 thay vì sử dụng các cơ chế quản lý phiên an toàn. Kẻ tấn công có thể dễ dàng giải mã cookie, thay đổi trường role từ 'member' thành 'admin', sau đó mã hóa lại và giành được quyền truy cập quản trị. Lỗi Security Misconfiguration (Cấu hình sai bảo mật) cũng thường đi kèm, ví dụ như để lộ một endpoint tài liệu API (/api-docs/) mà không yêu cầu xác thực. Điều này không chỉ vi phạm kiểm soát truy cập mà còn cung cấp cho kẻ tấn công một bản đồ chi tiết về cấu trúc hệ thống.

2.3. Lộ lọt dữ liệu Cryptographic Failures

Lỗi Cryptographic Failures, trước đây gọi là Sensitive Data Exposure, xảy ra khi dữ liệu nhạy cảm không được bảo vệ đúng cách. Vấn đề cốt lõi thường nằm ở việc thiếu hoặc sử dụng sai kỹ thuật mã hóa dữ liệu. Một ví dụ rõ ràng từ tài liệu nghiên cứu là việc lưu trữ mật khẩu người dùng trong cơ sở dữ liệu dưới dạng văn bản thuần túy hoặc chỉ được mã hóa Base64, thay vì sử dụng các thuật toán băm mạnh như Argon2 hoặc bcrypt. Điều này khiến toàn bộ thông tin đăng nhập của người dùng có nguy cơ bị lộ nếu cơ sở dữ liệu bị xâm phạm. Việc sử dụng các giao thức mã hóa yếu hoặc đã lỗi thời cũng góp phần vào rủi ro này, nhấn mạnh sự cần thiết của việc áp dụng các tiêu chuẩn mã hóa hiện đại trong bảo mật ứng dụng web.

III. Hướng dẫn lập trình an toàn chống lại OWASP Top 10

Phòng chống các lỗ hổng bảo mật web không phải là một công việc làm một lần mà là một quá trình liên tục, đòi hỏi sự kết hợp giữa kiến thức, công cụ và quy trình. Nguyên tắc cốt lõi của lập trình an toàn (secure coding) là 'không bao giờ tin tưởng dữ liệu đầu vào của người dùng'. Mọi dữ liệu nhận được từ client phải được xác thực, làm sạch và mã hóa một cách nghiêm ngặt trước khi được xử lý hoặc lưu trữ. Để chống lại các cuộc tấn công Injection như SQL Injection, việc sử dụng các truy vấn tham số hóa (parameterized queries) hoặc các ORM (Object-Relational Mapping) được thiết kế tốt là bắt buộc. Đối với XSS, cần áp dụng mã hóa đầu ra (output encoding) một cách nhất quán, đảm bảo rằng mọi dữ liệu do người dùng cung cấp được hiển thị dưới dạng văn bản chứ không phải mã thực thi. Việc củng cố cơ chế xác thực và quản lý phiên cũng rất quan trọng. Mật khẩu phải được băm bằng các thuật toán hiện đại, và cookie phiên phải được tạo ra một cách ngẫu nhiên, an toàn và được truyền qua HTTPS. Áp dụng nguyên tắc Đặc quyền Tối thiểu (Principle of Least Privilege) đảm bảo rằng người dùng và các thành phần hệ thống chỉ có quyền truy cập vào những tài nguyên thực sự cần thiết.

3.1. Kỹ thuật Validate Input và Sanitize Output

Xác thực đầu vào (Input Validation) là tuyến phòng thủ đầu tiên. Nó bao gồm việc kiểm tra dữ liệu đầu vào theo một bộ quy tắc nghiêm ngặt: kiểm tra kiểu dữ liệu, độ dài, định dạng và phạm vi giá trị. Ví dụ, một trường nhập số điện thoại chỉ nên chấp nhận các chữ số và có độ dài hợp lệ. Làm sạch đầu ra (Output Sanitization/Encoding) là bước tiếp theo, đặc biệt quan trọng để ngăn chặn Cross-Site Scripting (XSS). Trước khi hiển thị bất kỳ dữ liệu nào có nguồn gốc từ người dùng, các ký tự đặc biệt như <, >, &, " phải được chuyển đổi thành các thực thể HTML tương ứng. Điều này đảm bảo trình duyệt diễn giải chúng dưới dạng văn bản thuần túy thay vì các thẻ HTML hoặc mã script, vô hiệu hóa các payload tấn công.

3.2. Áp dụng mã hóa dữ liệu và quản lý phiên an toàn

Để khắc phục Cryptographic Failures, việc mã hóa dữ liệu là tối quan trọng. Dữ liệu nhạy cảm, cả khi đang được truyền đi (in transit) và khi được lưu trữ (at rest), đều phải được mã hóa bằng các thuật toán mạnh và được công nhận. Giao thức HTTPS (TLS) là tiêu chuẩn bắt buộc cho mọi giao tiếp web. Mật khẩu người dùng không bao giờ được lưu trữ trực tiếp; thay vào đó, hãy sử dụng các hàm băm thích ứng như bcrypt với salt. Quản lý phiên an toàn yêu cầu tạo ID phiên dài, ngẫu nhiên và chỉ truyền chúng qua cookie được gắn cờ HttpOnlySecure. Tuyệt đối không lưu trữ thông tin nhạy cảm như quyền của người dùng trực tiếp trong cookie có thể bị giả mạo, như ví dụ về cookie mã hóa Base64 đã được chứng minh là một lỗ hổng bảo mật web nghiêm trọng.

IV. Phương pháp kiểm thử xâm nhập pentest website hiệu quả

Ngay cả khi đã áp dụng các phương pháp lập trình an toàn, việc kiểm thử xâm nhập (pentest website) vẫn là một bước không thể thiếu để đảm bảo bảo mật ứng dụng web. Pentest là quá trình mô phỏng một cuộc tấn công có kiểm soát vào hệ thống để xác định các lỗ hổng có thể bị khai thác. Quá trình này giúp các tổ chức nhìn nhận hệ thống của mình từ góc độ của một kẻ tấn công, phát hiện ra những điểm yếu mà quá trình phát triển có thể đã bỏ sót. Có hai phương pháp phân tích chính thường được sử dụng là phân tích mã nguồn tĩnh (SAST)phân tích mã nguồn động (DAST). SAST hoạt động như một công cụ rà soát 'sách trắng', phân tích mã nguồn mà không cần thực thi ứng dụng để tìm ra các mẫu mã không an toàn. Ngược lại, DAST kiểm tra ứng dụng khi nó đang chạy, gửi các payload độc hại để xem hệ thống phản ứng như thế nào, giống như một cuộc tấn công 'hộp đen'. Sự kết hợp của cả hai phương pháp, cùng với việc kiểm thử thủ công bởi các chuyên gia bảo mật, sẽ cung cấp một cái nhìn toàn diện nhất về tình trạng an ninh của ứng dụng.

4.1. Sử dụng công cụ OWASP ZAP và Burp Suite

Các công cụ chuyên dụng đóng vai trò quan trọng trong việc tự động hóa và nâng cao hiệu quả của pentest. OWASP ZAP (Zed Attack Proxy) là một công cụ mã nguồn mở mạnh mẽ, cho phép người dùng tự động quét và tìm kiếm các lỗ hổng bảo mật web phổ biến. Nó hoạt động như một proxy, chặn và phân tích lưu lượng giữa trình duyệt và máy chủ. Burp Suite là một công cụ thương mại khác rất phổ biến trong cộng đồng bảo mật, cung cấp một bộ tính năng toàn diện từ quét tự động đến các công cụ kiểm thử thủ công chi tiết. Như đã đề cập trong tài liệu nghiên cứu, các công cụ này rất hữu ích trong việc phát hiện các lỗ hổng như SQL Injection và XSS bằng cách gửi đi hàng loạt payload thử nghiệm và phân tích phản hồi từ máy chủ.

4.2. Vai trò của Tường lửa ứng dụng web WAF

Một tường lửa ứng dụng web (WAF) hoạt động như một lớp phòng thủ bổ sung, nằm giữa người dùng và ứng dụng web. WAF giám sát và lọc lưu lượng HTTP, áp dụng một bộ quy tắc để xác định và chặn các yêu cầu độc hại trước khi chúng đến được máy chủ. Nó có thể giúp bảo vệ chống lại các cuộc tấn công phổ biến trong danh sách OWASP Top 10, chẳng hạn như SQL InjectionCross-Site Scripting (XSS), bằng cách phát hiện các mẫu tấn công đã biết trong các yêu cầu. Mặc dù WAF là một công cụ hữu hiệu, nó không nên được coi là giải pháp duy nhất. Việc vá lỗ hổng ngay từ trong mã nguồn vẫn là phương pháp bảo mật bền vững và hiệu quả nhất.

V. Kết luận Xây dựng văn hóa bảo mật trong tổ chức

Cuộc chiến chống lại các lỗ hổng bảo mật web là một hành trình liên tục chứ không phải là một điểm đến. OWASP Top 10 cung cấp một lộ trình quan trọng, nhưng công cụ hiệu quả nhất chính là việc xây dựng một văn hóa bảo mật mạnh mẽ trong toàn bộ tổ chức. Điều này có nghĩa là bảo mật không còn là trách nhiệm của riêng một bộ phận hay cá nhân nào, mà phải được tích hợp vào mọi giai đoạn của vòng đời phát triển phần mềm, từ khâu thiết kế đến triển khai và vận hành. Việc đào tạo liên tục cho các nhà phát triển về các kỹ thuật lập trình an toàn và các mối đe dọa mới nhất là cực kỳ quan trọng. Nghiên cứu của Nguyễn Việt Khang (2024) về việc xây dựng một website có chủ đích chứa lỗ hổng là một ví dụ điển hình về phương pháp học tập thực hành, giúp nâng cao nhận thức và kỹ năng thực tế. Bằng cách hiểu rõ cách một kẻ tấn công suy nghĩ và hành động, chúng ta có thể xây dựng các hệ thống phòng thủ vững chắc hơn. Cuối cùng, một chiến lược an ninh mạng toàn diện đòi hỏi sự kết hợp giữa con người, quy trình và công nghệ để bảo vệ tài sản số một cách hiệu quả nhất.

5.1. Hướng phát triển Tích hợp bảo mật DevSecOps

Tương lai của bảo mật ứng dụng web nằm ở việc áp dụng triết lý DevSecOps, tức là tích hợp bảo mật một cách liền mạch vào quy trình DevOps. Thay vì kiểm tra bảo mật ở cuối chu kỳ, các công cụ đánh giá bảo mật tự động như SAST và DAST được tích hợp vào các pipeline CI/CD. Điều này cho phép phát hiện và vá lỗ hổng sớm hơn, giảm chi phí và thời gian khắc phục. Văn hóa DevSecOps khuyến khích sự hợp tác chặt chẽ giữa các nhóm phát triển, vận hành và bảo mật, đảm bảo rằng mọi người đều chia sẻ trách nhiệm về an toàn của sản phẩm. Hướng phát triển này biến bảo mật từ một rào cản thành một yếu tố thúc đẩy tốc độ và chất lượng.

5.2. Tầm nhìn dài hạn và sự tiến hóa của OWASP Top 10

Thế giới an ninh mạng không ngừng biến đổi. Các công nghệ mới như AI, machine learning, và containerization tạo ra cả cơ hội và thách thức mới. Danh sách OWASP Top 10 sẽ tiếp tục phát triển để phản ánh những thay đổi này. Tầm nhìn dài hạn cho các tổ chức là không chỉ tuân thủ theo danh sách hiện tại mà còn phải xây dựng khả năng thích ứng, chủ động nghiên cứu các mối đe dọa mới và liên tục cải tiến các biện pháp phòng thủ. Việc theo dõi các dự án khác của OWASP, tham gia vào cộng đồng và duy trì một tư duy bảo mật chủ động sẽ là chìa khóa để giữ an toàn trong một thế giới kỹ thuật số đầy biến động.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI từ nội dung tài liệu gốc; tài liệu do người dùng đóng góp và được kiểm duyệt trước khi xuất bản. Báo lỗi nội dung.

11/09/2025

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

VIET NAM – KOREA UNIVERSITY OF INFORMATION AND COMMUNICATION TECHNOLOGY FACULTY OF COMPUTER AND ELECTRONIC ENGINEERING REPORT OF 4th IT BASE PROJECT Topic: BUILDING A WEBSITE WITH TOP 10 OWASP VULNERABILITIES Student : NGUYEN VIET KHANG – 22NS028 Instructor: PhD. NGUYEN HUU NHAT MINH Class : 4th IT Base Project Da Nang, November 2024 VIET NAM – KOREA UNIVERSITY OF INFORMATION AND COMMUNICATION TECHNOLOGY FACULTY OF COMPUTER AND ELECTRONIC ENGINEERING REPORT OF 4th IT BASE PROJECT Topic: BUILDING A WEBSITE WITH TOP 10 OWASP VULNERABILITIES Student : NGUYEN VIET KHANG – 22NS028 Instructor: PhD. NGUYEN HUU NHAT MINH Class : 4th IT Base Project Da Nang, November 2024 PREFACE In the process of studying and learning for the 4th IT Base Project , i realized that network security and web security are indispensable factors when developing and operating online systems. Open source software has been and is contributing significantly to the development of modern technology, with advantages of transparency, flexibility and a large support community.

However, security vulnerabilities can also appear if not detected and fixed promptly, especially in the context of website development. This report is designed to understand how to build a website that contains security vulnerabilities listed in the OWASP Top 10, and to further research how these vulnerabilities can be exploited and how they affect the system. Through this research, I hope to have a more comprehensive view of security in an open source environment, as well as grasp effective system protection methods. ACKNOWLEDGEMENTS During the process of implementing and completing this project, i have received very enthusiastic and useful help and guidance from the teacher of the Faculty of Computer and Electronics Engineering, Vietnam - Korea University of Information Technology and Communications.

I would like to express my sincere thanks to the teacher who have provided me with valuable knowledge, information, documents and guidance during the project. In particular, i would like to thank Mr. Nguyen Huu Nhat Minh - who directly guided me during the implementation of this project. However, due to limitations in time, knowledge and practical experience, the topic is inevitably flawed.

I look forward to receiving sympathy from teachers and welcome comments, assessments and feedback from teachers and students so that i can continue to improve and develop in future research and implementation projects. Once again, i would like to express my sincere thanks to Mr. Nguyen Huu Nhat Minh , who have supported and helped me throughout the process of implementing this project. …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… … …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… Instructor INDEX CHAPTER I.

OVERVIEW OF THE TOPIC. Information about the topic.1 Introduce the topic and reasons for choosing the topic 2 1.2 Objectives, meaning and subjects of the topic 2 1.3 Meaning of the topic: 3 1. Technologies used in the topic.1 Oracle VM Virtual Box 3 1.11 Vmware player 11 CHAPTER II. PROJECT SYSTEM STRUCTURE AND ANALYSIS.2 Database 17 CHAPTER III.

IMAGES AND PROJECT ACHIEVEMENTS.1 Normal user side 22 3.2 Vulnerabilities have been added to the site.1 Broken Access Control and Misconfiguration 27 3.6 Cryptographic Failures 32 CHAPTER IV. CONCLUSION AND DEVELOPMENT DIRECTION.3 Advantages and disadvantages of the topic:.4 Development direction of the topic:.34 PHOTO LIST Figure 1.1 VM Virtual Box.1 Use-case diagram.5 Type of food.6 general_info_order.3 Home page interface.7 Food description interface.8 Shopping cart and payment interface for multiple dishes.5 Access with admin rights.6 No attack payload yet.7 With attack payload.8 Malicious string insertion.12 Encoding cookies with base64.13 Do not encrypt user passwords.32 LIST OF ABBREVIATIONS STT Symbol Full text 1 HTML Hypertext Markup Language 2 CSS Cascading Style Sheets 3 JS JavaScript 4 EJS Embedded JavaScript 5 SCSS Sassy Cascading Style Sheets 6 API Application programming interface 10 CHAPTER I. OVERVIEW OF THE TOPIC 1. Information about the topic 1.1 Introduce the topic and reasons for choosing the topic Topic introduction: This topic focuses on detecting and describing common security vulnerabilities in the OWASP list, including SQL Injection, XSS (Cross-Site Scripting), Path traversal, Broken Access Control, Misconfiguration, Cryptographic Failures, and Authentication Failures.

These are all vulnerabilities that are frequently exploited by hackers to gain control or steal sensitive information from web systems, causing serious consequences for user security and privacy. Reason for choosing the topic: I chose to study these vulnerabilities because they are very common and have a profound impact on all web systems. Whether large or small businesses, organizations are still at risk of being attacked if they do not implement appropriate security measures. Moreover, understanding the operating mechanism and how to prevent these vulnerabilities helps us have a solid foundation of knowledge about web application security and create safer products in the future.2 Objectives, meaning and subjects of the topic Objective of the topic: - Raise awareness of three common security vulnerabilities and their exploitation mechanisms.

- Deep analysis of how these vulnerabilities are implemented in real environments. - Provides prevention methods for each vulnerability, helping to develop more secure systems. - Build a website that simulates vulnerabilities to provide a realistic environment for developers and security researchers to learn and practice.3 Meaning of the topic: This topic not only helps protect the system from external threats but also contributes to raising public awareness of information security. When developers are clearly aware of vulnerabilities and how to prevent them, they will contribute to minimizing attacks, better protecting user information and minimizing security risks for businesses.

Technologies used in the topic 1.1 Oracle VM Virtual Box Figure 1.1 VM Virtual Box Concept: Oracle VM VirtualBox is an open source virtualization software that allows the creation and management of virtual machines on personal computers. It provides an environment to run multiple operating systems on the same physical machine without the need for direct installation. In this project, VirtualBox helps create an isolated test environment for website deployment, making it easy to test OWASP security vulnerabilities and analyze application performance without affecting the actual production environment. Uses: VirtualBox helps create a separate virtual environment on the computer, allowing for safe deployment and testing of websites without affecting the main system.

You can set up and test many different configurations, easily re-initialize the environment when necessary, and quickly detect vulnerabilities without risking the actual system. Burp Suite Figure 1. BurpSuite Concept: Burp Suite is a powerful tool for security testing of web applications. It is especially useful for assessing OWASP vulnerabilities such as SQL Injection, Cross-Site Scripting (XSS), and authentication vulnerabilities.

Burp Suite offers a variety of features, including proxies, automated and manual scanning, and tools to test, exploit, and remediate security vulnerabilities on your website. Uses: Burp Suite is an important tool for detecting and testing website security vulnerabilities. It acts as a proxy, helping you monitor and modify HTTP requests and responses between the browser and the server. Burp Suite also has an automatic vulnerability detection feature, allowing you to find and exploit security vulnerabilities such as XSS, SQL Injection, helping you improve the security level of your web application.3 JS 13 Concept: A client-side programming language used to interact with and change content on a web page.

JS allows for dynamic actions such as validating data, dynamically changing content, handling events, and interacting with users. Uses: JavaScript is used to make web pages interactive and dynamic. It allows adding effects, changing content based on user behavior, validating input, and interacting with APIs to get and send data from the server.4 Bootsrap5 Concept: It is a popular and powerful CSS framework, used to build responsive and mobile-friendly web interfaces. Uses: Provides a set of tools and CSS classes for building web interfaces quickly and easily.

It provides interface components such as buttons, forms, tables, navigation bars, etc. that are pre-designed and compatible across various devices and browsers. Bootstrap 5 uses a flexible grid system (flexbox) to layout and arrange elements on the page. It also provides CSS classes and JavaScript components to implement effects, interactions, and custom features.

With Bootstrap 5, we can quickly build professional web interfaces, compatible on many devices and save time in the development process.5 Nodejs Concept: A server-side JavaScript runtime environment that allows JavaScript code to be executed not only on the browser but also on the server.js uses JavaScript to build web applications and server-side applications. Uses: The main use of Node.js is to build server-side web applications.js, you can build dynamic web applications, real-time applications, APIs, and other network applications.js provides asynchronous multithreading capabilities, allowing you to handle multiple requests at the same time without slowing down the application's performance.js also allows the use of libraries and modules created by the JavaScript community through npm (Node Package Manager). This helps reuse open source code and speeds up the application development process.6 EJS 15 Concept: A template language for Node. It allows dynamic HTML templates to be created by embedding JavaScript code into HTML.

EJS helps separate logic and interface in web applications, allowing for easy reuse and management of web page interface components. Uses: The main use of EJS is to separate logic and interface in web applications. Using EJS, it is possible to create reusable and easily manageable HTML templates. EJS allows JavaScript code to be inserted into HTML templates to create dynamic, repeating, conditional content and data charts.

With EJS, you can pass data from the server into your HTML template and use JavaScript expressions to manipulate that data during rendering. This allows you to create dynamic web pages that interact with data from the server.7 Express Concept: A powerful and flexible Node.js web application framework. It provides tools and features for building server-side web applications quickly and easily. Express allows for handling HTTP requests, managing routing, handling middleware, creating APIs, and much more.

Uses: Handles HTTP requests, manages routing, handles middleware, and creates APIs. With Express, you can build dynamic web applications, real-time applications, and RESTful APIs. Express helps create routes to determine how to handle requests from the client side and create middleware to perform intermediate processing functions like authentication, logging, data compression, etc. It also supports objects and methods to handle requests and send responses from the server.8 MySQL MySQL is an open source relational database management system that uses the SQL language to manage and query data.

It was developed by Oracle and is commonly used in web applications, especially on open source platforms such as Linux. Uses of MySQL: - Data Management: Store, query, and manage information efficiently. - Web application support: Commonly used in developing dynamic websites and content management systems. - Big Data Processing: Manage and process large amounts of data with high performance.

- Security: Provides strong security mechanisms for the database. - High compatibility: Works on multiple operating systems and programming languages 17 1.9 Github GitHub is a source code hosting and project management platform for software development. It provides tools and features for developing, managing, and sharing project source code. GitHub's key features include: - Source code hosting : GitHub allows you to create repositories to store your project's source code.

You can upload, branch, and manage versions of the source code. - Project Management : GitHub provides tools to manage and track project progress. You can create and assign issues, track and label issues, and track changes through a version control system. - Collaboration : GitHub allows multiple people to work on the same project.

You can invite members to your project, manage access, and view and review proposed changes via pull requests. - Share and discover : GitHub is a large community of software developers. You can share public source code, search and discover other projects, and participate in open source projects.10 Swagger Swagger is essentially an ecosystem of tools and standards, with the most popular standard data format being the OpenAPI Specification (OAS). OpenAPI is a RESTful API description standard that allows defining API endpoints, HTTP methods, parameters, and responses.

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