Защитите сокет от DOS и DDOS, используя python - PullRequest
0 голосов
/ 09 октября 2018

Вот мой сокет-сервер и клиент:

import socket
import threading
import chardet
bind_ip = '0.0.0.0'
bind_port = 9999

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((bind_ip, bind_port))
server.listen(1)  # max backlog of connections

print (('Listening on {}:{}').format(bind_ip, bind_port))


def handle_client_connection(client_socket):
    request = client_socket.recv(4096 )
    result = chardet.detect(request)
    print(result)
    print (request.decode(result['encoding']))
    client_socket.send('ACK!'.encode(result['encoding']))
    client_socket.close()

while True:
    client_sock, address = server.accept()
    print (('Accepted connection from {}:{}').format(address[0], address[1]))
    client_handler = threading.Thread(
        target=handle_client_connection,
        args=(client_sock,)  # without comma you'd get a... TypeError: handle_client_connection() argument after * must be a sequence, not _socketobject
    )
    client_handler.start()

Клиент такой:

import socket

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

client.connect(('127.0.0.1', 9999))

client.send(str('test data').encode("utf-16"))

response = client.recv(4096)

print(response.decode("utf-16"))

Как обезопасить сокет-сервер от атак DOS или DDos?

...