daigai

Well-Known Member
LINK TẢI LUẬN VĂN MIỄN PHÍ CHO AE KET-NOI
Nghiên cứu xây dựng nền tảng phần mềm Fullstack-MQTT cho kỹ sư
2. Các số liệu, tài liệu ban đầu:
+ Linh hoạt hiệu quả trong dự án.
+ Dễ dàng sử dụng.
+ Dễ dàng nâng cấp và cá nhân hoá mô hình.
+ Miễn phí khi sử dụng.
3. Nội dung chính của đồ án:
4. Các sản phẩm dự kiến:
+ Tập bản vẽ.
+ Thiết minh.
+ Phần mềm nền tảng.
MỤC LỤC
DANH MỤC VIẾT TẮT .......................................................................................... iv
MỤC LỤC.................................................................................................................. v MỤC LỤC HÌNH ẢNH............................................................................................ ix MỤC LỤC BẢNG ..................................................................................................... x LỜI CAM ĐOAN ..................................................................................................... xi LỜI CẢM ƠN:......................................................................................................... xii CHƯƠNG 1. TỔNG QUAN...................................................................................... 1
1.1. Lý do chọn đề tài: ......................................................................................... 1
1.2. Tính cấp thiết của đề tài:.............................................................................. 1
1.3. Mục tiêu: ....................................................................................................... 1
1.4. Phương pháp nghiên cứu và đối tượng nghiên cứu: ................................... 1
1.5. Các sản phẩm tương tự hay sản phẩm tiền nhiệm. ................................... 2
1.5.1. Sản phẩm Django: ................................................................................. 2
1.5.2. Sản phẩm Flask: .................................................................................... 2
1.6. Phạm vi đề tài:..............................................................................................3 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.......................................................................... 4 2.1. Mô hình mạng OSI: ......................................................................................... 4 2.2. Giao thức mạng TCP: .................................................................................. 5
2.2.1. Lịch sử của giao thức TCP: ................................................................... 5
2.2.2. Bản thân TCP: ....................................................................................... 5
2.2.3. Cách hoạt động giao tiếp của cách TCP.................................. 5
2.3. Nền tảng WWW (world wide web):............................................................. 6
2.4. Giao thức HTTP:.......................................................................................... 6
2.4.1. HTTP là gì? ............................................................................................ 7
2.4.2. Cách hoạt động của cách HTTP trên hạ tầng mạng: ............. 7
2.4.3. Các cách của giao thức mạng HTTP:......................................7
2.5. Mã
2.6. Mã
2.7. Mã
2.8. cách HTTPS: .................................................................................. 9
2.9. Các khái niệm Python cơ bản. ..................................................................... 9
hoá dữ liệu:............................................................................................. 7 hoá bất đối xứng: ................................................................................... 7 hoá đối xứng:.......................................................................................... 8
2.9.1. Cách thực thi một lệnh Python: ............................................................ 9 v
2.9.2. Khái niệm Indentation (Thụt lề) trong Python. ................................... 9
2.9.3. Biến trong Python:.................................................................................9
2.9.4. Ghi chú trong Python: ......................................................................... 10
2.9.5. Các nguyên tắc đặt tên biến ................................................................ 10
2.9.6. Các kiểu dữ liệu trong Python: ........................................................... 10
2.9.7. Kiểu văn bản trong Python (str): ........................................................ 11
2.9.8. Cắt văn bản (str) trong Python: .......................................................... 11
2.9.9. Cắt văn bản từ vị trí đầu tiên trong Python: ...................................... 11
2.9.10. Cắt văn bản đến vị trí cuối trong Python: ....................................... 12
2.9.11. Chỉ mục âm:...................................................................................... 12
2.9.12. Chuyển đổi dữ liệu sang dạng viết hoa trong Python: .................... 12
2.9.13. Chuyển đổi dữ liệu sang dạng viết hoa trong Python (với casefold):
12
2.9.14. Chuyển đổi dữ liệu sang dạng viết thường trong Python: .............. 12
2.9.15. Xoá khoảng trắng thừa trong Python: ............................................ 12
2.9.16. Thay thế văn bản trong Python: ...................................................... 12
2.9.17. Tách văn bản và tạo thành một mảng trong Python: ..................... 12
2.9.18. Nối văn bản trong Python: ............................................................... 12
2.9.19. Cấu trúc sắp xếp sẵn cho văn bản trong Python (Phần 1): ............ 12
2.9.20. Cấu trúc sắp xếp sẵn cho văn bản trong Python (Phần 2): ............ 13
2.9.22. Cấu trúc sắp xếp sẵn cho văn bản trong Python (Phần 4): ............ 13
2.9.23. Cấu trúc sắp xếp sẵn cho văn bản trong Python (Phần 5 – với %):
13
2.9.24. Chuyển đổi chữ cái đầu tiên thành chữ viết hoa trong Python: ..... 13
2.9.25. Canh đều lề trong Python: ............................................................... 13
2.9.26. Đếm số lần xuất hiện của một văn bản con trong văn bản gốc –
Python: 13
2.9.27. Chuyển đổi văn bản sang chuẩn UTF-8 trong Python: .................. 13
2.9.28. Tìm vị trí của một văn bản con trong Python: ................................ 13
2.9.29. Kiểm tra tất cả ký tự có thuộc bảng Alphabet: ............................... 14
2.9.30. Kiểm tra tất cả ký tự có phải là số:..................................................14
2.9.31. Kiểm tra tất cả ký tự có phải là số (Phần 2):...................................14
2.9.32. Boolean trong Python:...................................................................... 14
2.9.33. Số nguyên trong Python (int): .......................................................... 14
vi

2.9.34. Số thực trong Python (float): ........................................................... 14
2.9.35. Số phức trong Python:...................................................................... 14
2.9.36. Toán tử trong Python – Giới thiệu: ................................................. 14
2.9.37. Toán tử số học:.................................................................................. 15
2.9.39. Toán tử so sánh: ............................................................................... 15
2.9.40. Toán tử lý luận (Logical):................................................................. 15
2.9.41. Toán tử xác thực (Identify): ............................................................. 16
2.9.42. Toán tử Membership:....................................................................... 16
2.9.43. Toán tử Bitwise:................................................................................ 16
2.9.44. Danh sách trong Python ................................................................... 16
2.9.45. Truy xuất dữ liệu qua chỉ số mục: ................................................... 16
2.9.46. Chỉ số trong một mảng:.................................................................... 17
2.9.47. Thay đổi giá trị phần tử: .................................................................. 17
2.9.48. Thêm phần tử từ một đối tượng: ..................................................... 17
2.9.49. Thêm phần tử từ một mảng khác: ................................................... 17
2.9.50. Chèn phần tử vào mảng: .................................................................. 17
2.9.51. Xoá phần tử trong mảng: ................................................................. 17
2.9.52. Xoá phần tử qua chỉ mục: ................................................................ 17
2.9.53. Xoá sự tồn tại của một danh sách: ................................................... 18
2.9.54. Xoá tất cả phần tử của một danh sách: ........................................... 18
2.9.55. Vòng lặp với một danh sách: ............................................................ 18
2.9.56. Lấy chiều dài của một danh sách:....................................................18
2.9.57. Sắp xếp một mảng chữ số:................................................................ 18
2.9.58. Sao chép một mảng: ......................................................................... 18
2.9.59. Tuple trong Python:.......................................................................... 18
2.9.60. Khởi tạo một biến Tuple: ................................................................. 19
2.9.61. Truy xuất phần tử trong Tuple:....................................................... 19
2.9.62. Vòng lặp for trong Python: .............................................................. 19
2.9.63. Vòng lặp while trong Python: .......................................................... 20
2.9.64. Các từ khóa tác động đến vòng lặp:................................................. 21
2.9.65. Câu lệnh điều kiện trong Python: .................................................... 22
2.9.66. Cấu trúc lệnh if trong Python: ......................................................... 22
2.9.67. Lệnh if ... else ................................................................................... 24
vii

2.9.68. Lệnh if ... elif ... else trong Python: ................................................ 25
2.9.69. Lệnh if lồng nhau trong Python:......................................................26
2.10. Javascript cơ bản: ................................................................................... 34
2.11. HTML cơ bản.......................................................................................... 41
2.12. Database là gì? Vai trò? .......................................................................... 46
2.13. SQLInjection ........................................................................................... 46
CHƯƠNG 3. TRIỂN KHAI ĐỒ ÁN: ..................................................................... 48
3.1. Mã hoá: ....................................................................................................... 48
3.2. Giao thức TCP/IP với Socket ..................................................................... 49
3.3. Giao thức HTTP:........................................................................................ 52
3.4. Giao thức MQTT........................................................................................ 54
3.5. Cơ chế Broken: ........................................................................................... 66
3.6. Cơ sở dữ liệu:.............................................................................................. 68
3.6.1. Lưu đồ giải thuật trợ giúp kết nối với MySQL. ................................. 68
3.6.2. Lưu đồ giải thuật trợ giúp kết nối với SQLServer. ............................ 69
3.7. Lưu đồ giải thuật bộ điều phối Render. .................................................... 70 CHƯƠNG 4. THỰC NGHIỆM: ............................................................................. 74 CHƯƠNG 5: KẾT LUẬN VÀ KIẾN NGHỊ: ......................................................... 77
5.1. Kết luận: ..................................................................................................... 77
5.2. Kiến nghị: ................................................................................................... 77
CHƯƠNG 6. TÀI LIỆU THAM KHẢO ................................................................ 78 PHỤ LỤC: ............................................................................................................... 79
viii

MỤC LỤC HÌNH ẢNH
Hình 1.1. Hình Django dành cho Python. .................................................................... 2 Hình 1.2. Hình nền tảng Flask dành cho Python. ......................................................... 2 Hình 2.1. Mô hình giao tiếp giữa máy khách và máy chủ qua giao thức TCP .............. 5 Hình 2.2. Thời gian cần thiết để một hacker Brute force mật khẩu của bạn..................8 Hình 2.3. Thực thi lệnh python trên command line. ..................................................... 9 Hình 2.4. Thực thi lệnh python qua một tệp tin *.py .................................................... 9 Hình 2.5. Cách tạo ra một biến trong Python (trong command line)........................... 10 Hình 2.6. Ghi chú trên một dòng................................................................................ 10 Hình 2.7. Ghi chú trên nhiều dòng. ............................................................................ 10 Hình 2.8. Ví dụ về hàm print trong python. ............................................................... 11 Hình 2.9. Ví dụ về biến có dữ liệu là văn bản chứa nhiều dòng thông tin................... 11 Hình 2.10. Sơ đồ câu lệnh If tham khảo tại tài liệu [5] ............................................... 23 Hình 2.11. Sơ đồ lệnh if else tham khảo tại [5] .......................................................... 24 Hình 2.12. Sô đồ lệnh if elif else tham khảo tại [5]. ................................................... 26 Hình 2.13. Hình mô tả quá trình làm việc của một hàm. ............................................ 28 Hình 2.14. Hộp thoại sau khi sử dụng hàm alert. ....................................................... 34 Hình 2.15. Mẫu siêu văn bản html ............................................................................. 42 Hình 2.16. Mẫu siêu văn bản html 2 .......................................................................... 45 Hình 2.17. Hình mẫu về thẻ ul và li. .......................................................................... 46 Hình 3.1. Lưu đồ giải thuật thuật toán mã hoá RSA................................................... 48 Hình 3.2. Lưu đồ giải thuật TCP/IP với thư viện socket trong python.......................49 Hình 3.3. Lưu đồ cách mạng HTTP. ............................................................. 52 Hình 3.4. Lưu đồ giải thuật giao thức MQTT. ........................................................... 65 Hình 3.5. Cách hoạt động của các Subcribe. .............................................................. 67 Hình 3.6. Cách hoạt động của các gói tin Publish. ..................................................... 68 Hình 3.7. Lưu đồ giải thuật quá trình kết nối cơ sở dữ liệu MySQL........................... 68 Hình 3.8. Lưu đồ quá tình kết nối với cơ sở dữ liệu SQLServer.................................69 Hình 3.9. Lưu đồ thuật toán tạo ra nội dung gửi cho .................................................. 71
ix

MỤC LỤC BẢNG
Bảng 2.1. So sánh giữa HTTP và HTTPS .................................................................... 9 Bảng 2.2. Bảng toán tử số học. .................................................................................. 15 Bảng 2.3. Bảng toán tử chuyển nhượng ..................................................................... 15 Bảng 2.4. Bảng toán tử so sánh.................................................................................. 15 Bảng 2.5. Bảng toán tử logical................................................................................... 16 Bảng 2.6. Bảng toán tử xác thực ................................................................................ 16 Bảng 2.7. Bảng toán tử membership .......................................................................... 16 Bảng 2.8. Bảng toán tử bitwise .................................................................................. 16 Bảng 2.9. Bảng mẫu về chỉ số trong một mảng .......................................................... 17 Bảng 2.10. Bảng thuộc tính của đối tượng Math. ....................................................... 40 Bảng 2.11. Bảng các cách phổ biến trong thư viện Math...............................41 Bảng 3.1. Bảng thông tin về các dạng tin nhắn. ......................................................... 55 Bảng 3.2. Bảng thông tin, vị trí và ý nghĩa của các Flag trong Fixed header. ............ 56 Bảng 3.3. Bảng thông tin về giá trị Connect return trong phiên bản MQTT V3.1. .... 58 Bảng 3.4. Bảng trạng tháy Connect Return của phiên bản đặc biệt V5.1f................... 60 Bảng 3.5. Bảng thông tin về giá trị của Payload......................................................... 60 Bảng 3.6. Bảng phân tích chủ đề và giá trị qua hệ HEX............................................. 61 Bảng 3.7. Bảng phân tích giá trị chủ đề và QoS qua mã HEX.................................... 63
x

LỜI CAM ĐOAN
Tên đề tài: “Nghiên cứu xây dựng nền tảng phần mềm Fullstack-MQTT cho kỹ sư”. GVHD: Th.S Lê Phan Hưng
SVTH: Nguyễn Trần Phúc Bảo MSSV: 17146232
Nguyễn Nam Bình MSSV: 17146233 Khoá: 2017-2023
- Số điện thoại liên lạc: 038.694.0444 039.278.7271
- Email: [email protected]
[email protected]
- Lời cam kết:
“Nhóm chúng tui xin cam đoan đồ án này là công trình nghiên cứu của nhóm dưới sự hướng dẫn của Th.S Lê Phan Hưng. Những nhận định lời văn được nêu ra trong đồ án là kết quả của sự nghiên cứu trực tiếp, nghiêm túc, độc lập. Tất cả các tài liệu tham khảo, học thuật, bài báo,... trong đồ án đều được trích dẫn một cách đầy đủ. Đồ án vẫn sẽ đảm bảo đầy đủ tính khách quan, trung thực, khoa học. Nếu có bất kỳ một sự vi phạm nào chúng tui xin chịu hoàn toàn trách nhiệm.”
Tp.Hồ Chí Minh, ngày ... tháng 02 năm 2023. Thay mặt nhóm sinh viên
Ký tên
Nguyễn Trần Phúc Bảo
xi

LỜI CẢM ƠN:
Chúng em xin Thank thạc sĩ Lê Phan Hưng đã giúp đỡ và tạo điều kiện cho nhóm chúng em hoàn thành đồ án này. Chúng em cũng Thank sâu sắc tới toàn thể giảng viên và ban giám hiệu nhà trường.
Chúng con xin Thank đến gia đình và người thân đã giúp đỡ cho chi phí khi thực hiện đề tài này.
Chúng tui cũng rất Thank bạn bè và đọc giả đã tìm tới và đọc bài nghiên cứu này.
Chúng tui cũng xin Thank một vài người bạn ẩn danh đã tải nền tảng của mình trên sourceforce nơi lưu trữ mã nguồn mở. tui rất mong các bạn cùng nhóm chúng tui xây dựng FullstackMQTT trở nên thiết thực hơn nữa.
xii

CHƯƠNG 1. TỔNG QUAN.
1.1. Lý do chọn đề tài:
Ngày nay, với sự phát triển mạnh mẽ của công nghệ đặt biệt công nghệ thông tin và viễn thông nhằm tiên phong tạo ra một nền tảng hỗ trợ cho lập trình fullstack và IoT. Nên nhóm đề nghiên cứu nền tảng fullstackmqtt dành cho kỹ sư. Nhằm phục vụ cho mục đích nghiên cứu và học tập. Nhóm rất mong muốn được nhiều nhà phát triển cùng nhau xây dựng FullstackMQTT trở thành nền tảng mạnh mẽ, có thể trợ giúp cho sự phát triển IoT, AIoT và IioT của nước nhà.
1.2. Tính cấp thiết của đề tài:
Ngày nay, công nghệ mới luôn luôn được ra đời và công việc liên quan cũng được sinh ra, như Facebook ra đời kéo theo đó các lĩnh vực lập trình tự động marketing, ... cũng ra đời. Đồng thời, cũng rất nhiều công nghệ cũ cùng với công việc liên quan cũng bị mất đi. Chúng ta sẽ rất tốn thời gian nếu như vô tình tìm hiểu về những công nghệ đó. Thay vào đó, chúng ta tự tạo ra nền tảng riêng biệt và từ tạo ra cơ hội việc làm thì thật tuyệt vời. Nhưng dám nghĩ và dám làm thì vẫn chưa đủ nếu như chúng ta thiếu đi nền tảng kiến thức đến từ sách, các đoạn phim liên quan. Đề tài này được xây dựng từ nền kiến thức mà nhóm học tập được từ các sách, bài báo khoa học, các bài học trực tuyến miễn phí và có trả phí trên các nền tảng học tập trực tuyến. Đề tài xây dựng ra nền tảng lập trình mới và cũng đặc biệt chứng minh rằng tự học, tự đọc sách và chi trả chi phí cho việc nâng cấp kiến thức bản thân sẽ quan trọng như thế nào đối với mọi người nói chung và học sinh cùng sinh viên nói riêng.
1.3. Mục tiêu:
Mục tiêu và sản phẩm nhóm hướng tới sau khi hoàn thành dự án là:
 Nền tảng fstkmqtt (Fullstack MQTT) dưới dạng module package dành cho
python; và đặt biệt cải tiến Broken ở lớp thứ 7 trong mô hình OSI
 Tài liệu hướng dẫn tích hợp bản thuyết mình.
 Mẫu thử nghiệm.
1.4. Phương pháp nghiên cứu và đối tượng nghiên cứu:
Các phương pháp nghiên cứu nhóm sử dụng là:
 Đọc tài liệu đề cập đến mạng OSI. Đặc biệt, nghiên cứu sâu tới TCP/IP và
các ứng dụng của nó.
 Đọc tài liệu liên quan đến các chuẩn giao tiếp của giao thức MQTT V3.1 và
V5.0.
 Xem và học hỏi từ các nguồn chia sẽ kiến thức như youtube, facebook, ....
 Tham gia các cuộc tra đổi học thuật online qua các phần mềm như Messenger,
Zalo và Zoom.
 Trao đổi với giảng viên trợ dẫn để hướng dẫn, đưa lời khuyên.
Đối tượng nghiên cứu:
 Nghiên cứu về hạ tầng mạng với mô hình OSI
 Nghiên cứu giao thức mạng TCP/IP.
 Nghiên cứu giao thức HTTP.
1

 Nghiên cứu giao thức MQTT.
1.5. Các sản phẩm tương tự hay sản phẩm tiền nhiệm.
1.5.1. Sản phẩm Django:
Hình 1.1. Hình Django dành cho Python.
Django là một trong những nền tảng tốt bậc nhất dành cho python hỗ trợ cho lập trình viên trong lập trình.
Ưu điểm:
 Bảo mật của Django khá tốt.
 Hỗ trợ người dùng mở rộng thoải mái với lưu lượng traffic lớn.
 Dễ sử dụng với Python và mô hình MVC
 Dễ học tập với nguồn tài liệu học tập phổ biến dễ tìm Nhược điểm:
 Không đưa ra thông báo khi có lỗi.
 Tạo bộ định tuyến tương đối khó và phức tạp.
1.5.2. Sản phẩm Flask:
Hình 1.2. Hình nền tảng Flask dành cho Python.
2

Ưu điểm:
 Dễ dàng triển khai.
 Dễ dàng học tập và nắm bắt.
 Dễ dàng tiềm kiếm thông tin tài liệu.
 Có thể phòng chống XSS. Nhược điểm:
 Cần lập trình viên am hiểu về an ninh mạng, hiểu rõ được cách phòng
chống các lỗ hổng.
 Không thể xem mô tả lỗi.
 Khó triển cho việc triển khai.
1.6. Phạm vi đề tài:
- Triển khai dự án lên các nền tảng mã nguồn mở khác bao gồm hệ thống dịch vụ pip và sourceforce
- Phạm vi sử dụng: Quốc tế.
3

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1. Mô hình mạng OSI:
1
Lớp ứng dụng Lớp trình bày Lớp phiên
Lớp vận chuyển Lớp mạng
Lớp liên kết dữ liệu
Lớp vật lý
Là nơi tương tác giữ người dùng với các phần mềm trên thiết bị có thể truy cập mạng.
Là nơi mã hoá dữ liệu từ dữ liệu từ kết quả ở lớp 7 (Lớp ứng dụng).
Là nơi tạo ra các kênh liên lạc qua cổng thông tin (port) có giá trị trong vùng 1 ÷ (2 − 1).
Là nơi vận chuyển dữ liệu qua các giao thức TCP, UDP, ATP, CUDP, RUDP
Quyết định con đường vật lý mà gói dữ liệu sẽ được gửi đi.
Xác định cấu trúc của dữ liệu trên mạng.
Vận chuyển dòng bit thô (0 1) trên phương tiện vật lý.
  
  
Lớp ứng dụng: Là nơi có các tương tác giữa người dùng và máy tính qua các ứng dụng mà có thể truy cập dịch vụ mạng tới các hệ thống máy chủ khác nhau trên máy tính của người dùng.
Lớp trình bày: Khi người dùng thao tác với phần mềm sinh ra các dữ liệu có thể sử dụng được thì các dữ liệu đó sẽ được chuyển tới lớp trình bày để được xử lý qua các quá trình như mã hoá dữ liệu.
Lớp phiên: Là nơi tạo ra kênh để trao đổi giữa 2 máy (2 thực thể) khác nhau qua môi trường mạng, hay gọi là một phiên. Lớp này đóng vai trờ quan trọng và chịu trách nhiệm cho việc mở phiên và đảm bảo duy trình hoạt động của một cổng đảm bảo rằng các gói dữ liệu đều được gửi trước khi một trong 2 bên yêu cầu ngắt quá trình do các yếu tố khác ảnh hưởng.
Lớp vận chuyển: Đây là lớp mạng đóng vai trò phân rã gói tin từ lớp phiên thành nhiều gói tin phù hợp với tốc độ truyền, phù hợp với lớp phiên tại thiết bị đầu cuối, tạo và kiểm tra tính đúng đắn gói tin nếu không đúng sẽ yêu cầu lại gói đó.
Lớp mạng: Giữ 2 vai trò quan trọng. Một là định danh địa chỉ cuối cần nhận. Hai là tìm đường đi đến điểm cuối ngắn nhất (Mô hình đồ thị). Các dữ kiện trên sẽ được đính kèm vào gói tin từ lớp vận chuyển đề xuất tới và tạo ra các gói
Lớp liên kết dữ liệu: Từ các gói lớp này sẽ phân chia thành các khung và thực hiện gửi từ nguồn tới đích. Lớp này có 2 phần chính bao gồm điều khiển liên kết Logical (LLC) nhằm xác định cách mạng, kiểm tra và động bộ
7
6
5
4
3
2
4

hoá các khung dữ liệu. Hai là MAC (Media Access Control), địa chỉ MAC đóng vai trò cung cấp kết nối thiết bị và xác định đặc quyền để gửi và nhận dữ liệu.
 Lớp vật lý: là nơi tín hiệu số được chuyển đổi thành các tính hiện vật lý học như sóng, điện, cơ, .... Một số thiết bị ở lớp vật lý như Ăng-ten của router (Sóng điện trường), Cáp quang, vệ tinh, dây điện, ....
2.2. Giao thức mạng TCP:
cách TCP xuất hiện ở lớp thứ 4 trong mô hình OSI. TCP viết tắt cho cụm từ Transmission Control Protocol.
2.2.1. Lịch sử của giao thức TCP:
cách mạng TCP lần đầu tiên được công bố vào năm 1974 bởi nhà phát triển Vint Cetf và Bob Kahn.
2.2.2. Bản thân TCP:
TCP xuất hiện rất nhiều trong thực tế, vì cơ chế của giao thức TCP giúp nó trong nhiều giao thức cao cấp hơn như Telnet, BGP, DHCP, FTP, HTTP, HTTPS, IMAP, IRC, MQTT, XMPP, ....
Trong thực tế giao thức TCP xuất hiện rất nhiều trong thực tế, từ những trang website mà chúng ta tìm kiếm hằng ngày, từ những phần mềm thiết kế như Adobe, phần mềm văn phòng của Microsoft, .... Đâu đâu chúng ta cũng đều có thể thấy giao thức TCP xuất hiện.
Trong lập trình, TCP chúng ta có thể tìm bất cứ ở đâu, như socket trong python, winsock trên C, websocket.io trên javascript, ....
2.2.3. Cách hoạt động giao tiếp của cách TCP
Hình 2.1. Mô hình giao tiếp giữa máy khách và máy chủ qua giao thức TCP
Ta có cái trạng thái trên hình 3 lần lượt là:
 CLOSED: Trang thái đóng.
5

 LISTEN: Trạng thái lắng nghe (Chỉ có trên máy chủ).
 ESTABLISHED: Trạng thái được thành lập, ở trạng thái này máy
khách và máy chủ có thể giao tiếp với nhau qua các khung dữ liệu.
 FIN_WAIT_1, FIN_WAIT_2: Trạng thái chờ hoàn tất.
 CLOSEWAIT: Trạng thái chờ đóng khi hoàn tất tất cả tác vụ truyền
nhận giữ hai thiết bị.
 LAST_ACK: Trạng thái chờ gói ACK cuối cùng từ nguồn bạn.
 TIMEWAIT: Trạng thái chờ, thông thường là 2 mili giây.
Ví dụ minh hoạ, máy chủ (Server) có địa chỉ IP là 43.122.32.123 và cổng port được mở là 43226, máy khách (Client) có địa chỉ IP là 213.213.43.123.
Khi máy khách kết nối tới máy chủ thì cổng port được mở trên máy khách sẽ là 65322. Ta có các thông tin như sau:
 Địa chỉ khách: 213.213.43.123/65322 ở trạng thái CLOSED
 Địa chỉ máy chủ: 43.122.32.123/43226 ở trạng thái LISTEN Quá trình kết nối như sau:
 Client sẽ gửi một gói đồng bộ hoá (SYN) đến Server và chuyển sang
trạng thái SYN_SENT.
 Khi Server nhận được gói SYN và gửi đến Client SYN + đoạn mã thừa
nhận (ACK), đồng thời chuyển trạng thái từ LISTEN sang trạng thái
SYN_RECD
 Client sẽ gửi trả ACK.
 Kết thúc quá trình kiểm tra kết nối Client và Server sẽ kết nối với nhau
qua cổng 43226 tại 213.213.43.123 (Đối với Server) với cổng 65322 tại 213.213.43.123 (đối với Client) đồng thời, cả Client và Server sẽ chuyển sang trạng thái ESTABLISHED
 Sau đó giữa Client và Server sẽ có các đường truyền trao đổi dữ liệu
Phần tử nội tuyến (Inline tags):
Loại tag này chỉ chiếm phần nhỏ trong không gian website và cũng không bắt đầu dòng mới của trang. Tag này thường được dùng để định dạng, tạo bố cục cho nội dung bên trong của Block-level tags.
Có nhiều Inline tags được sử dụng để định dạng văn bản.
: Được dùng để định dạng chữ đậm
: Được dùng để định dạng chữ in nghiêng.
: Gắn hyperlink vào trang (Cần sử dụng attribute href để xác định
đường link cụ thể).
: Gắn thêm ảnh không cần tag đóng (Cần sử dụng attribute src để xác
định nguồn ảnh).
2.12. Database là gì? Vai trò?
Chúng ta sẽ gặp từ database trong nhiều lĩnh vực liên qua đến dữ liệu như công nghệ thông tin, khoa học máy tính, trí tuệ nhân tạo, .... Database là một hệ cơ sở dữ liệu giúp lưu lại những giá trị thông tin dưới dạng các tệp trong hệ thống cơ sở dữ liệu.
Database đóng vai trò hết sức quan trọng trong việc làm việc trược tiếp hay gián tiếp với hệ thống cơ sở dữ liệu. Database giúp lập trình viên/ người dùng dễ dàng truy xuất đến dữ liệu trong hệ thống cơ sở dữ liệu.
2.13. SQLInjection
SQLInjection là các thức tấn công trực tiếp vào quá trình excute query của một hệ thống cơ sở dữ liệu. Đây là một lỗ hổng nguy hiểm bậc nhất đối với một cá nhân hay một tổ chức bởi vì khi tin tặc tấn công vào hệ thống cơ sở dữ liệu thì hay trăm hay hàng nghìn thậm chí là hàng triệu thông tin nhạy cảm của các khách hàng, nhân viên, quản lý các cấp của tổ chức hay thông tin của một cá nhân nào đó sẽ bị rò rỉ ra ngoài.
Vì vậy, rất nguy hiểm đúng không vậy chúng ta sẽ cùng nhau tìm hiểu cách tấn công một hệ cơ sỡ dữ liệu bị lỗi SQLInjection này nhé.
46
Giả sử, A là người đã tạo ra hệ backend của một trang web làm về lĩnh vực ngân hàng tuy nhiên trong code để xác nhận đăng nhập của anh ta là:
Sau đó A dùng kết quả khi execute trên so sánh với số 1. Tuy nhiên đây cũng chính là nơi bắt đầu của bi kịch tại ngân hàng anh A làm.
B là một tin tặc anh ấy thực hiện tấn công như sau:
Tài khoản: admin
Mật khẩu: ‘ or 1 = 1 --
Và ngân hàng trên đã thực hiện hàng trăm cuộc chuyển tiền không xác định điểm đến sau khi B phát hiện SQLInjection có tồn tại.
Chúng ta sẽ phân tích tại sao cuộc tấn công trên lại thành công. Với cách execute của anh A tạo ra thì dòng lệnh thực thi cuối cùng sẽ là:
Vậy có cách nào để ngăn chặn hành vi tấn công SQLInjection hay không? Câu trả lời là có, chỉ cần trong quá trình trước khi chúng ta truy vấn đến hệ cơ sở dữ liệu thì hãy chuyển đổi tất cả ký tự như “-”, dấu nháy đơn, dấu nháy kép, dấu phẩy thành dữ liệu khác. hay đơn giản hơn là chúng ta cấm chúng (ví dụ như facebook năm 2016).
Link Download bản DOC
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:

 
Các chủ đề có liên quan khác
Tạo bởi Tiêu đề Blog Lượt trả lời Ngày
R Nghiên cứu thiết kế và xây dựng hệ thống mạng LAN tại trường THPT Công nghệ thông tin 0
D Nghiên cứu tinh luyện SiO2 từ vỏ trấu, rơm để sản xuất vật liệu xây dựng Nông Lâm Thủy sản 0
D Nghiên cứu và xây dựng mô hình mô phỏng hệ thống lái thi sát hạch B1 Luận văn Sư phạm 0
D Nghiên cứu sự hài lòng của người dân về nhà ở tái định cư tại các dự án xây dựng lại nhà chung cư cũ Luận văn Kinh tế 0
D nghiên cứu xây dựng quy trình phân tích các hoạt chất chính trong cây hương thảo Nông Lâm Thủy sản 0
D Nghiên cứu và đề xuất quy trình xây dựng hệ thống mạng an toàn Công nghệ thông tin 0
D Nghiên cứu chính sách, giải pháp và xây dựng mô hình liên kết vùng, tiểu vùng trong phát triển du lịch ở vùng Tây Bắc Văn hóa, Xã hội 0
D Nghiên cứu xây dựng quy trình nhân giống nấm kim châm dạng dịch thể và sản xuất nấm kim châm flammulina velutipes Nông Lâm Thủy sản 0
D Nghiên cứu tình hình tiêu thụ sản phẩm của công ty cổ phần vật liệu xây dựng Tuấn Khanh Luận văn Kinh tế 0
D Nghiên cứu vấn đề điều khiển lò nhiệt. Đi sâu xây dựng chương trình giám sát nhiệt độ lò nhiệt trong phòng thí nghiệm sử dụng card PCI 1710 Công nghệ thông tin 0

Các chủ đề có liên quan khác

Top