は私が開き、TCPソケット上でリッスンPythonで書かれたシンプルなサーバーがあります。Pythonソケットサーバーへの不正な接続を防ぐにはどうしたらいいですか?
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind(("", 4242)) server_socket.listen(5)
print("TCPServer Waiting for client on port 4242")
while 1:
client_socket, address = server_socket.accept()
print("I got a connection from ", address)
while 1:
data = client_socket.recv(512)
if data:
print(data)
if not data:
print("Closed Connection")
break
をし、それは素晴らしい作品!
私は今、疑問に残っています...自分のIPとポートを知っているルージュクライアントは、私のサーバーに接続できます。私のIPとポートが狂った安全でないとすれば...このTCPソケットに接続できる唯一のデバイスが自分のデバイスであることを確認するにはどうすればいいですか?
何らかのキーを作成できますか?それはSSLについてのことです、私はそれを理解するのに苦労しています。 SSLはちょうど傍受されないようにデータを保護しているようですが、だれでも私のリスナーに接続して書くことができますか?
ありがとうございます!
さまざまな複雑さとセキュリティを備えた認証メカニズムが多数あります。あなたが使用するものは、どのような複雑さと必要なセキュリティがあるかによってます。その問題は広すぎる。しかし、他のプロトコル(HTTP、POP、SMTPなど)がどのようにこの問題を解決しているかを見てみることをお勧めします。プレーンテキストパスワード、ダイジェスト認証、クライアント証明書を使ったTLSです。 –