Если приложение Java создает ServerSocket
, который принимает TCP-соединения, существует ли способ ограничить, какие процессы разрешены для подключения к нему?Как защитить ServerSocket, чтобы другие процессы не могли его использовать?
Например, это мой текущий код:
ServerSocket serverSocket = new ServerSocket(1234);
Socket socket = serverSocket.accept();
, и я хочу, чтобы убедиться, что другие устройства в моей сети и даже другие процессы, работающие на той же машине, не в состоянии подключиться к нему (это если бы они это сделали). Я смог решить первое, связав serverSocket
только с адресом loopback (проверка того, будет ли socket.getRemoteAddress()
указывает на локальный хост), но я не смог найти способ ограничить его текущим процессом.
Это еще одна проблема при работе на Android. В моем приложении я хочу создать WebView
(принадлежащий моему процессу) и указать его на serverSocket
, но я не хочу, чтобы другие приложения могли подключаться к нему.
Есть ли способ решить эту проблему?
Спасибо за это, но я не могу найти 'getdtablesize()' на Android. Можете ли вы показать мне, где это определено? –
Используйте '#include' или определите его сами как здесь: https://github.com/OpenWireSec/metasploit/blob/master/external/source/meterpreter/source/bionic/libc/unistd/getdtablesize.c –
Yey! Это работает! Видимо, у Android NDK нет 'GE tdtablesize() 'в' unistd.h', но я использовал другую реализацию, и она работает. –