Некоторое время назад я вошел в другой аргумент с моим другом. Он утверждает, что Java крайне небезопасен из-за используемого сетевого стека. Он говорит, что погода или нет, вы используете сеть, этот сетевой стек открыт и работает. И в любое время, когда у вас запущено приложение Java, кто-то может захватить JVM через сетевой стек и взять под свой контроль ваш компьютер. Есть ли у этого в этом правда? Извините, если это не «реальный» вопрос или ограничен подробностями, но это все, что он мне сказал.Безопасность сетевого стека Java?
-1
A
ответ
2
Как это [вставить любимое проклятие здесь] ошибки меня так, как это делает вас, я создал короткую тестовую программу:
public class Shullbit {
public static void main(String[] args) {
while(true) {
System.out.println("Still not convinced ?!?");
try {
Thread.sleep(5000);
}
catch(Exception e) {
//
}
}
}
}
После запуска этой программы просто сидит и ждет. Это оставляет нам достаточно времени для поиска открытых портов. Я побежал код на Ubuntu 14.04 с этой версией Java:
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) Server VM (build 25.45-b02, mixed mode)
Когда я запускаю программу с java -Dcom.sun.management.jmxremote Shullbit
я могу видеть, что был открыт порт:
sudo netstat -anop | grep java
tcp6 0 0 :::56066 :::* LISTEN 18797/java off (0.00/0/0)
unix 2 [ ] STREAM CONNECTED 30209 18797/java
Но этого следовало ожидать, потому что мы сказали Java для этого. И этот порт по умолчанию может использоваться только локально и может быть защищен SSL, паролями или клиентскими сертификатами.
Когда я запускаю ту же программу с только java Shullbit
нет открытых портов:
sudo netstat -anop | grep java | wc -l
0
Так скажите своему другу, чтобы либо вернуться на работу или в школу ;-)
Я голосую закрыть этот вопрос как вне темы, потому что речь идет о безопасности jvm, а не о программировании. Кроме того, слишком широк. Существует выделенный пакет стека безопасности, если у вас есть более конкретные претензии, на которые вы хотите получить ответ. – njzk2
Ваш друг звучит смущенно, но довольно сложно ответить на такое неспецифическое требование, особенно в формате ответа на вопрос/ответ. –
Глупости в лучшем свете и вне темы. Докажите его не так, и запустите программу Java, а затем запустите netstat или tcpview. – Marged