Назад | Перейти на главную страницу

Кеширование управления доступом к прокси

Я хочу использовать кэширующий прокси-сервер, чтобы заставить все соединения на моей странице через SSL, и позволить прокси-серверу обрабатывать незащищенное соединение.

Этот прокси доступен из Интернета.

Теперь мне было интересно, что мешает кому-либо использовать этот прокси?

В основном мне нужно отображать содержимое электронной почты в браузере, а встроенные ресурсы должны проксироваться через SSL, например https://myproxy.com?url=http%3A%2F%2Funsecure.com%2Fa.png.

Если я правильно понимаю, вы показываете стороннее содержимое электронной почты на своем сайте (т.е. ваша система загружает электронную почту и отображает ее на веб-странице). Вы должны быть очень осторожны с рисками XSS при этом и должным образом избегать и отображать контент, который вы получаете. Это легче сказать, чем сделать, особенно если вы хотите, чтобы электронные письма сохраняли свой общий вид.

GMail, например, по умолчанию скрывает весь сторонний контент, и если вы решите загрузить его, браузер фактически покажет предупреждающий знак над индикатором «безопасное соединение». Если вы решите сделать это, было бы неплохо использовать отдельный домен. «Это достаточно хорошо для Google», вероятно, было бы достаточно приличным оправданием для клиента.

Ничто не мешает кому-либо использовать ваш прокси для любого контента, если вы реализуете его наивным образом. Вы можете добавить какую-то HTTP-аутентификацию на сервер, выполняющий проксирование (на основе файлов cookie, HTTP-аутентификации или сертификатов на стороне клиента TLS). В обычных условиях использование файлов cookie, вероятно, является единственным разумным вариантом. Более сложные альтернативы будут включать в себя синтаксический анализ электронной почты, извлечение ресурсов с горячими ссылками и переписывание URL-адресов, чтобы ваш прокси-сервер получал только специально созданные запросы прокси, а не все, что ваши пользователи помещают в строку URL-адресов.

Если вы объясните общее использование и функциональные возможности создаваемой вами системы, я смогу предложить лучшее решение.