На сколько безопасно Apache HttpClient соединение?
- Использую в программе Apache HttpClient. Добавил CookieSpecs.STANDARD, SSLContex и Header (by default). Программа - поисковый робот. Работает в многопоточном режиме и понять что происходит в соединении с конкретным узлом, можно только в том случае, если произойдёт какая-то ошибка и будет вызван метод printStackTrace().
Заметил такую тенденцию: После остановки программы, некоторые потоки становятся как daemon Thread-s. Они как "подвисают". А чтоб они быстро завершили свою работу, приходится тупо выключать интернет. Можно ли как-то добавить таймер к apache соединению, и поможет ли это защититься от гипотетических хулиганов?
Я имею ввиду вредоносный код. HTTP соединение через HttpClient, также как и через InputStream - это по сути TCP/IP соединение. Отправляя REST запрос, я открываю порт, а что отправляет сервер - это уже зависит от владельца ресурса.
Вы в данном случае клиент, а значит и хулиганство возможно только с вашей стороны.
Клиент не может ничего отправить, что не принимает сервер. Это сервер выставляет условия. А слепо доверять любому ресурсу - это как минимум безрассудно.
My1Name, ага, это по сути tcp-соединение, через которое вы просто получаете поток байт в определённом формате
и всё. Если вы запросили условно index.html, а в ответ вам прилетел virus.exe, то надо быть очень особенным, чтобы это не заметить, принять эти данные и зачем-то их запустить. История знает тысячи случаев взлома серверов, но вот взлома клиента web-сервером что-то не припомню ни одного.
вы запросили условно index.html, а в ответ вам прилетел virus.exe
Почему сразу "virus.exe"? Например под Cookie в Apache выделяется некоторый объём памяти. По большому счёту - это набор байтов, который например может как-то взаимодействовать с каким-то скриптом. - Это всё конечно же мои догадки и предположения ("гадание на кофейной гуще"). Однако, многие сайты без поддержки javascript вообще не работают. При этом могут без предупреждения собирать инфу. о посетителях и пользователях.
История знает тысячи случаев взлома серверов
- Сервер невозможно взломать, если он правильно обрабатывает URL. Клиент принимает условия сервера, а не наоборот. Поэтому клиент больше подвержен опасности.
- Стандартные настройки браузера, запрещают лишь всплывающие окна и закрывают доступ к сайтам не поддерживающим ssl. Последнее, между прочим, вышвырнуло с интернета все не коммерческие проекты.
Http-клиенты js вообще не выполняют.
- Вот и я думаю: Не с этим ли связано подвисание некоторых потоков в моей программе?
Как? - Ведь нельзя сделать больше, чем протокол http позволяет?
почему базы уязвимостей набиты уязвимости серверов, а не клиентов.
Вопрос остался открытым: Почему принято считать, что сервер хороший, а клиент плохой?
Сегодня чаще можно услышать о краже личных данных пользователя, а не о взломе или порче сервера. Администрация того или иного ресурса, может специально заявлять о взломе или ещё что-то там придумывать, чтоб оправдать продажу БД.