Артем: у нас пользователи для работы по ssh из внешней сети используют отдельный терминальный сервер, данные на который скопировать нельзя, доступы ограничиваются на уровне vlan.
Если инициатор "утечки данных" находится во внутренней сети отследить и заблокировать данные за Nat будет невозможно, прокси же может сканировать данные по сигнатуре и шифрование тут ничем не поможет, если сигнатура архива к примеру, то передать данные не выйдет.
По поводу данных согласен, они разные бывают, но лучше сделать правильно, чем потом "школьники" будут воровать информацию. Так хоть от дурака защита будет.
Артем: не соглашусь, скажем если есть только маршрутизация и я как умный вася "разрешу только вебстранички смотреть" то есть открою 80 порт, что делает умный недоброжелатель, открывает по ssh тунель на свой сервер по 80 порту (ssh без разницы на каком порту крутиться) и сливает к себе всю клиенскую информацию. Что обстоит с прокси, на стороне прокси можно настроить все(зависит от сервера конечно), например фильтрация по содержимому, проксе не даст "передать" контент в внешний сервер (см mcaffe web gateway к примеру). Второй момент, через прокси нельзя иницировать подключение с внешней сети, а значит любые попытки проникнуть извне невозможны впринципе, пройти за NAT вполне можно, если очень постараться. И третий момент, я понимаю что потеря клиентских данных не всеми организациями воспринимается как чтото страшное, но это до первого же конфликта с потерей доверия клиентов, поэтому безопастность должна быть на первом месте, удобность на последнем. "Вот смотрите - в первую очередь делается подключение желательно чтобы у всех были белые адреса, если не получается, то нат, если совсем все печально прокси." - этот подход может быть для домашнего компьютера, но не для организации.
Артем: в общем то согласен, если на компьютерах в сети нет клиенских данных а только фотки с котятами то проблемы особой нет, в таком случае не вижу причин вообще что либо ограничивать, обычно ограничения создают чтобы предотвратить утечку данных или бесконтрольный доступ к сомнительным ресурсам, тут все решается на уровне прокси легко. для подключение ресурсов локальный сети к внешней (чтобы был доступ к ним извне) обычно создают DMZ (ru.wikipedia.org/wiki/DMZ_(%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D1%81%D0%B5%D1%82%D0%B8)) в которой уже крутится сервер, тем самым внутренняя сеть остается изолированной от внешней сети, в самом тупом и дешевом варианте для этого достаточно в веб сервер воткнуть вторую сетевую карту и ее подключать к интернету.
VSharipov особых проблем если их много кстати нет, насколько я понял обе настраиваются в файлах конфигурации, можно сделать утилиту, которая по списку ip\порт\логин пароль скопирует "прообраз" в отдельные папки, настроит конфигурационные файлы и запустит каждый прокси.
беглое гугление показывает smallproxy.ru/settins/set-http/proxy.php, в любом случае 1 программы для "много проксей" я думаю нет, ибо весьма специфическая задача.
Артем: NAT это в некотором смысле "прямое" подключение к сети и при определенной сноровке двухстороннее подключение, что крайне негативно сказывается на безопастности всего, что есть в сети. Подключение же "снаружи" при использовании прокси сервера практически исключено.
Александр Воробьев: если под правилами считать только белый или черный список то из бесплатных знаю handycache, пользуюсь уже года 2. Есть поддержка пользователей.
Александр: и к слову 100% защиты все равно не будет, т.к. любое приложение можно декомпилировать, вопрос только в уровне знаний того, кто это будет делать
Александр: единственный способ в таком случае заменить md5 на чтото другое например на md5 от md5 N раз потом от того что получилось SSH, код который это расчитывает нужно защитить всеми возможными средствами, обфускация там и тп, в таком случае сам пользователь сможет подменить запрос только если сможет декомпилировать ваш код.
Александр: пример нужно гуглить, самый элементарный вариант, среди прочих параметров запроса добавляется еще 1 к примеру "&sign=" в этом параметре передавать текст MD5Hash(IMEI+все параметры запроса в string)
соответственно сервер должен знать его IMEI и по нему определять что это именно тот кто был нужен, MD5Hash это функция возвращаяющая хэш сумму от текстовой строки, в строке будет IMEI и все параметры. сервер должен проделать всю эту процедуру точно так же и если параметры не изменены и IMEI тот же получит туже строку в этом параметре. Так сервер может быть уверен что прислал именно тот кто знает IMEI. Если нужна идентификация конкретного устройства в MD5Hash(строку) можно добавить еще какую ни будь произвольную строку, которая хранится на устройстве и которая так же известна серверу.
Это приметивный, но достаточно эффективный способ подписи. Пример расчета md5 есть тут stackoverflow.com/questions/4846484/md5-hashing-in..., со стороны сервера алгоритм не меняется, но реализовываться должен естественно на языке сервера
если делать просто "защиту от дурака" то достаточно в header запроса положить какие ни будь "признаки" типа сменить агента или чтото в этом духе, сервер же прочитает header и у браузера этого признака не найдет, от взломщика который слегка умнее табуретки это не спасет
Shiramine: повторил код у себя string sender = "localhost:811";
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(sender);
WebResponse resp = null;
req.Proxy = null;
req.Method = "GET";
req.Timeout = 1500;
req.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
req.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.94 Safari/537.36 OPR/27.0.1689.66";
var coociesStr = "asdasdads";
req.Headers.Add("Cookie", coociesStr);
req.Headers.Add("Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");
DateTime dt1 = DateTime.Now;
resp = req.GetResponse();//задержка 400-800мс (иногда превышает таймаут)
DateTime dt2 = DateTime.Now;
TimeSpan ts = dt2 - dt1;
Console.WriteLine(ts.Milliseconds );
StreamReader sr = new StreamReader(resp.GetResponseStream());
string str = sr.ReadToEnd();
sr.Close();
Console.ReadLine();
на GetResponse 10 мс, на весь блок кода 70 мс, нужно проверить на другом компьютере, если будет нормально то это вопрос из серии "GetResponse ( ) Медленное только на моем компьютере", вкратце погуглил причину вроде не нашли, какой антивирь стоит? Есть смысл попробовать его снести вместе с файрволами и попробовать снова, возможно антивирусы сетевой поток проверяют.
KirillMB: эмулировать устройство по lpt еще хоть в теории но возможно, там все немного проще, но на usb есть 100500 обработчиков и форматов данных, все эмулировать это надо быть еще тем извра..любителем, советую гуглить в сторону "виртуальный принтер linux", ставить на него виртуальный принтер и просто скачивать с него готовые файлы хоть по samba хоть по ftp
StrangeAttractor: можно попробовать поиграться с настройками устройства в диспетчере задач, в частности попробовать выключить галку "отключать устройство для экономии энергии", такие глюки на нее похожи
lock screen widgets это не то, там виджеты для определенных lockеров вместо стандартного, эти умудряются вешать свое окно поверх lock screen без рута и на любой версии look screen
Дмитрий: в любом случае если вы "как браузер" будете слать запросы в таких количествах что "ограничения xml не устраивают" то вас начнут банить и спрашивать "а не робот ли вы часом" и просить ввести капчу, так что если нужно для реальных целей нужно пользовать api и если ограничения не устраивают можно поднять несколько сервисов с разных IP использущих разные API ключи