Python Forensics - นิติเครือข่าย
สถานการณ์ของสภาพแวดล้อมเครือข่ายสมัยใหม่เป็นเช่นนั้นที่การตรวจสอบอาจเต็มไปด้วยปัญหาเนื่องจากปัญหาหลายประการ สิ่งนี้สามารถเกิดขึ้นได้ไม่ว่าคุณจะตอบสนองต่อการสนับสนุนการละเมิดการตรวจสอบกิจกรรมภายในการดำเนินการประเมินที่เกี่ยวข้องกับช่องโหว่หรือการตรวจสอบการปฏิบัติตามกฎข้อบังคับ
แนวคิดของการเขียนโปรแกรมเครือข่าย
คำจำกัดความต่อไปนี้ใช้ในการเขียนโปรแกรมเครือข่าย
Client - ไคลเอนต์เป็นส่วนหนึ่งของสถาปัตยกรรมไคลเอนต์เซิร์ฟเวอร์ของการเขียนโปรแกรมเครือข่ายซึ่งทำงานบนคอมพิวเตอร์ส่วนบุคคลและเวิร์กสเตชัน
Server - เซิร์ฟเวอร์เป็นส่วนหนึ่งของสถาปัตยกรรมไคลเอนต์เซิร์ฟเวอร์ที่ให้บริการโปรแกรมคอมพิวเตอร์อื่น ๆ ในคอมพิวเตอร์เครื่องเดียวกันหรือเครื่องอื่น
WebSockets- WebSockets มีโปรโตคอลระหว่างไคลเอนต์และเซิร์ฟเวอร์ซึ่งทำงานผ่านการเชื่อมต่อ TCP แบบต่อเนื่อง ด้วยวิธีนี้สามารถส่งข้อความสองทิศทางระหว่างการเชื่อมต่อซ็อกเก็ต TCP (พร้อมกัน)
WebSockets มาหลังจากเทคโนโลยีอื่น ๆ อีกมากมายที่อนุญาตให้เซิร์ฟเวอร์ส่งข้อมูลไปยังไคลเอนต์ นอกเหนือจากการจับมือกับส่วนหัวของการอัพเกรดแล้ว WebSockets ยังไม่แยกจาก HTTP
โปรโตคอลเหล่านี้ใช้เพื่อตรวจสอบความถูกต้องของข้อมูลที่ผู้ใช้บุคคลภายนอกส่งหรือรับ เนื่องจากการเข้ารหัสเป็นหนึ่งในวิธีการที่ใช้ในการรักษาความปลอดภัยของข้อความจึงเป็นสิ่งสำคัญเช่นกันที่จะต้องรักษาความปลอดภัยให้กับช่องสัญญาณที่มีการถ่ายโอนข้อความ
พิจารณาโปรแกรม Python ต่อไปนี้ซึ่งไคลเอนต์ใช้สำหรับ handshaking.
ตัวอย่าง
# client.py
import socket
# create a socket object
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# get local machine name
host = socket.gethostname()
port = 8080
# connection to hostname on the port.
s.connect((host, port))
# Receive no more than 1024 bytes
tm = s.recv(1024)
print("The client is waiting for connection")
s.close()
เอาต์พุต
มันจะให้ผลลัพธ์ดังต่อไปนี้ -
เซิร์ฟเวอร์ที่ยอมรับคำขอช่องทางการสื่อสารจะรวมสคริปต์ต่อไปนี้
# server.py
import socket
import time
# create a socket object
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# get local machine name
host = socket.gethostname()
port = 8080
# bind to the port
serversocket.bind((host, port))
# queue up to 5 requests
serversocket.listen(5)
while True:
# establish a connection
clientsocket,addr = serversocket.accept()
print("Got a connection from %s" % str(addr))
currentTime = time.ctime(time.time()) + "\r\n"
clientsocket.send(currentTime.encode('ascii'))
clientsocket.close()
ไคลเอนต์และเซิร์ฟเวอร์ที่สร้างขึ้นด้วยความช่วยเหลือของการเขียนโปรแกรม Python ฟังหมายเลขโฮสต์ ในขั้นต้นไคลเอ็นต์จะส่งคำขอไปยังเซิร์ฟเวอร์เกี่ยวกับข้อมูลที่ส่งในหมายเลขโฮสต์และเซิร์ฟเวอร์ยอมรับคำขอและส่งการตอบกลับทันที วิธีนี้จะทำให้เรามีช่องทางการสื่อสารที่ปลอดภัย