Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 22 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
22
Dung lượng
92,04 KB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM ĐỒ ÁN CƠ SỞ KIỂM THỬ TRÊN PYTHON Ngành: Cơng nghệ thơng tin Chun ngành: An tồn thông tin Giảng viên hướng dẫn : ThS.Dương Minh Chiến Sinh viên thực MSSV: 1911770446 : Trần Quang Trường Lớp: 19DATA1 TP Hồ Chí Minh, 2022 LỜI CẢM ƠN Em xin bày tỏ lịng kính trọng biết ơn đến thầy Dương Minh Chiến tận tình giúp đỡ hướng dẫn em hoàn thành báo cáo Nhờ giúp đỡ nhiệt lòng thầy mà báo cáo hoàn thành tiến độ đề Với hiểu biết tìm tịi thân bảo hướng dẫn tận tình giảng viên em cố gắng hoàn thành đồ án cách tốt khơng thể tránh thiếu sót Kính mong nhận đóng góp ý kiến từ thầy để em nâng cao bổ sung thêm kiến thức cho thân, hoàn thiện đồ án với kết tốt hoản chỉnh Em xin chân thành cám ơn! MỤC LỤC Chương TỔNG QUAN 1.1 Giới thiệu 1.2 Nhiệm vụ đồ án 1.3 Cấu trúc đồ án Chương CƠ SỞ LÝ THUYẾT 2.1 Ngôn ngữ lập trình Python .3 2.1.1 Lịch sử hình thành .3 2.1.2 Các khái niệm 2.1.3 Các thư viện .7 2.1.4 Sử dụng hàm Python 2.2 Kiểm thử 2.2.1 Pentest gì? .9 2.2.2 Các hình thức Pentest .10 2.2.3 Tại cần Pentest? 12 2.2.4 Điểm yếu Pentest .14 2.2.5 Quy trình Pentest 15 Chương TỔNG QUAN 1.1 Giới thiệu Giới thiệu ngắn gọn đề tài nêu tóm tắt lý thuyết, nghiên cứu trước có liên quan đến đề tài (có trích dẫn tài liệu tham khảo) Phần thường dài từ 5-7 trang đồ án tổng hợp 1.2 Nhiệm vụ đồ án Nêu tính cấp thiết lý hình thành đề tài ý nghĩa khoa học thực tiễn, mục tiêu nghiên cứu, đối tượng, phạm vi giới hạn Phần thường dài từ 1-2 trang 1.3 Cấu trúc đồ án Trình bày cấu trúc đồ án gồm chương tóm tắt chương Phần thường dài tối đa trang Chương CƠ SỞ LÝ THUYẾT 2.1 Ngơn ngữ lập trình Python 2.1.1 Lịch sử hình thành Python hình thành vào cuối năm 1980 bắt đầu thực vào tháng 12/1989 Guido van Rossum CWI Hà Lan người kế thừa ngôn ngữ ABC (tự lấy cảm hứng từ SETL) có khả xử lý ngoại lệ giao tiếp với hệ điều hành Amoeba Van Rossum tác giả Python, vai trị trung tâm ơng tiếp tục việc định hướng phát triển Python phản ánh tiêu đề mà cộng đồng Python dành cho ông “Độc tài nhân từ cho sống” (benevolent dictator for life)(BDFL) Python 2.0 phát hành vào ngày 16/10/2000, với nhiều tính bao gồm dọn rác đầy đủ hỗ trợ Unicode Với phiên này, trình phát triển thay đổi trở thành minh bạch cộng đồng ủng hộ Python 3.0 (còn gọi Python 3000 Py3k), phát hành lớn, không tương thích ngược, phát hành vào ngày 03/12/2008 sau thời gian dài thử nghiệm Nhiều số tính điều chỉnh để tương thích ngược với Python 2.6 2.7 Các tính triết lý phát triển Python ngôn ngữ lập trình đa hình: lập trình hướng đối tượng hướng cấu trúc hỗ trợ đầy đủ, có số tính ngơn ngữ hỗ trợ lập trình theo chức lập trình hướng khía cạnh (Aspect-oriented programming) Nhiều mơ hình khác hỗ trợ việc sử dụng phần mở rộng, bao gồm thiết kế theo hợp đồng (design by contract) lập trình luận lý Các trang Mozilla, Reddit, Instagram PBS viết Python Ngơn ngữ lập trình Python dùng vào mục đích: Phát triển web (trên máy chủ) Phát triển phần mềm Tính tốn cách khoa học Lên kịch cho hệ thống Tại Sao Nên Học Lập Trình Python? Python hỗ trợ nhiều tảng khác (Windows, Mac, Linux, Raspberry Pi, etc) Python có cú pháp đơn giản, dễ đọc hiểu gần gũi với tiếng Anh Cú pháp Python giúp lập trình viên sử dụng dịng code để lập trình thuật tốn so với ngơn ngữ lập trình khác Python sử dụng trình thơng dịch để thực thi dịng code Do đó, dịng code thực thi mà khơng cần biên dịch tồn chương trình Như giúp kiểm tra code nhanh Python hỗ trợ hàm, thủ tục, hay kể lập trình hướng đối tượng Để viết mã nguồn Python, ta sử dụng trình soạn thảo nào, kể trình soạn thảo đơn giản NotePad Tuy nhiên, để phát triển ứng dụng cách hiệu hơn, ta nên sử dụng IDE, để tiết kiệm thời gian cơng sức viết code sử dụng IDE thơng dụng để lập trình ứng dụng Python, PyCharm IDE 2.1.2 Các khái niệm Trong Python văn bên phải biểu tượng # trình biên dịch hiểu comment khơng biên dịch phần Sử dụng nhiều comment hữu ích chương trình bạn làm cho cơng việc lập trình bạn dễ dàng hơn: Giải thích giả định Giải thích định quan trọng Giải thích chi tiết quan trọng Giải thích vấn đề bạn cố gắng giải Giải thích vấn đề cố gắng khắc phục chương trình mình, v.v Hằng số (Literal Constants): Ví dụ số theo nghĩa đen số 5, 23 chuỗi ‘python’hay “It’s a string!” Nó gọi nghĩa đen sử dụng giá trị theo nghĩa đen Số ln ln đại diện cho khơng có khác số giá trị khơng thể thay đổi Do đó, tất giá trị gọi số Số (Numbers): Số chủ yếu có hai loại – số nguyên (integer) số thực (float) Chuỗi (String): Một chuỗi dãy ký tự Chuỗi loạt từ Biến: Biến xác tên gọi nó, tức giá trị thay đổi Các biến giúp lưu trữ định nghĩa Các biến phần nhớ máy tính nơi lưu trữ số thông tin Đối tượng(Object): Python đề cập đến điều sử dụng chương trình đối tượng Việc tổ chức, quản lý lưu trữ liệu quan trọng cho phép truy cập dễ dàng sửa đổi hiệu Cấu trúc liệu (Data Structure) cho phép bạn xếp liệu theo cách cho phép bạn lưu trữ liệu thu thập, liên quan đến chúng theo mà thực thao tác chúng Python có hỗ trợ ngầm cho Cấu trúc liệu cho phép lưu trữ truy cập liệu Các cấu trúc gọi List, Dictionary, Tuple Set Python cho phép người dùng tạo Cấu trúc liệu riêng họ, cho phép tồn quyền kiểm sốt chức Các cấu trúc liệu bật Stack, Queue, Tree, Linked List, v.v đồng thời có sẵn ngơn ngữ lập trình khác Cấu trúc liệu tích hợp (Built-in Data Structures) Về cấu trúc liệu Python, Cấu trúc liệu tích hợp sẵn với Python giúp lập trình dễ dàng giúp lập trình viên sử dụng chúng để có giải pháp nhanh Và có kiểu cấu trúc liệu là: List: Được sử dụng để lưu trữ liệu loại liệu khác cách Có địa gán cho thành phần danh sách, gọi Index Giá trị mục tiếp tục phần tử cuối gọi số dương Dictionary: Được sử dụng để lưu trữ cặp key-value Để hiểu rõ hơn, nghĩ đến thư mục điện thoại nơi hàng trăm hàng ngàn tên số tương ứng chúng thêm vào Bây giá trị không đổi Tên Số điện thoại gọi phím Và tên số điện thoại khác giá trị đưa vào phím Nếu truy cập giá trị phím, nhận tất tên số điện thoại Vì vậy, cặp key-value Và Python, cấu trúc lưu trữ Dictionary Set: Là tập hợp yếu tố khơng có thứ tự Có nghĩa liệu lặp lại nhiều lần, nhập vào tập hợp lần Tuple (các liệu): Tuples giống list với ngoại lệ liệu nhập vào liệu thay đổi điều Ngoại lệ liệu bên Tuple thay đổi, sau liệu Tuple thay đổi Python chạy loạt câu lệnh theo thứ tự từ xuống cách xác Câu lệnh điều khiển loại câu lệnh dùng để điều khiển luồng chạy câu lệnh khác chương trình Điều đạt cách sử dụng câu lệnh điều khiển Có lệnh kiếm sốt cấu trúc điều khiển Python là: if, for while If sử dụng để kiểm tra điều kiện: điều kiện chạy khối câu lệnh (được gọi if-block), sai chương trình xử lý khối câu lệnh khác (được gọi else-block ) For in câu lệnh lặp khác, lặp lặp lại qua chuỗi (sequences) đối tượng tức qua mục chuỗi Chúng ta tìm 25 hiểu nhiều sequences cấu trúc liệu Python sau Những bạn cần biết chuỗi trình từ tập hợp items Kết Vòng lặp for Python hồn tồn khác với vịng lặp C / C ++ vòng lặp for Python tương tự vòng lặp foreach C# Trong C / C ++, bạn muốn viết for(int i = 0; i