Lập trình mạng Python: giao thức UDP (phần 6)

Máy khách lẫn lộn và các trả lời không được chào đón (tiếp tục)

Chú ý rằng client có điểm dễ tổn thương với bất cứ ai người có thể xử lí một gói UDP
tới nó. Đây không phải là trường hợp nơi kẻ tấn công man-in-the-middle có kiểm soát trên
mạng và có thể giả mạo các gói dữ liệu từ các địa chỉ giả mạo, một tình huống cái có
thể được bảo vệ lại chỉ bằng cách sử dụng mã hoá. Hơn là, một người gửi không có đặc
quyền hoạt động hoàn toàn bên trong các quy tắc và gửi một gói dữ liệu với một địa chỉ
trả về hợp pháp tuy nhiên có dữ liệu của nó được chấp nhận.
Một máy khách mạng đang lắng nghe cái sẽ chấp nhận hay ghi lại mọi gói dữ liệu đơn cái nó
thấy mà không quan tâm tới liệu gói dữ liệu có được đánh địa chỉ đúng đắn, được biết đến
như là một máy khách lẫn lộn. Đôi khi chúng ta viết những cái này cẩn thận, như khi chúng
ta làm giám sát mạng và muốn xem tất cả các gói dữ liệu đi đến một giao diện. Trong trường
hợp này, tuy nhiên tính lẫn lộn là một vấn đề.
Chỉ ,mã hoá viết tốt, tốt thực sự sẽ thuyết phục code của bạn rằng nó đã nói chuyện với
đúng server. Thiếu cái đó, có hai kiểm tra nhanh bạn có thể làm. Trước tiên, thiết kế hay sử
dụng các giao thức cái bao gồm một cái nhận dạng duy nhất hay yêu cầu ID trong request cái
lặp lại trong trả lời. Nếu trả lời chứa ID bạn đang tìm kiếm cho – nên miễn là
dải ID đủ lớn để ai đó không thể đơn giản nhanh chóng tạo dòng lụt bạn với hàng
nghìn hay hàng triệu gói dữ liệu chứa mọi ID có thể – ai đó người đã thấy request của bạn phải
ít nhất đã biên tập nó. Thứ hai là, hoặc kiểm tra địa chỉ của reply packet lại với địa chỉ
cái bạn gửi nó tới (nhớ rằng tuples trong Python có thể đơn giản là == được so sánh) hoặc sử dụng
connect() để cấm địa chỉ khác khỏi gửi bạn gói dữ liệu. Xem các học phần sau cho chi tiết hơn.

Chia sẻ

Leave a Reply

Your email address will not be published. Required fields are marked *