Javascript-прокси: и красиво, и полезно
Содержание:
7 ответов
8
ISA Server может искать и предотвращать различные эксплойты HTTP и препятствовать их доступу на веб-сервер. Хотя большинство современных HTTP-серверов больше не эксплуатируются, у этого есть дополнительное преимущество не отправлять этот трафик на веб-сервер.
Кроме того, ISA упростит выполнение таких задач, как добавление SSL-ускорения и предварительная авторизация пользователей по различным URL-адресам. Он может даже действовать как балансировщик нагрузки для вас, поэтому вы можете легко добавить больше веб-серверов, не используя отдельный балансировщик нагрузки.
Обязательно возьмите профи, который этот человек дает на ISA, и весит его против того, сколько дополнительных накладных расходов будет стоить для управления и запуска ISA по сравнению с преимуществами.
8
Apache имеет mod_security, который будет обнаруживать общие атаки безопасности. Существует также mod_cband, который может ограничить используемую ширину полосы. Я бы не удивился, если бы у ISA было что-то подобное. Без чего-то, что действительно делает проверки на HTTP-трафик, поскольку он проходит через прокси-сервер, все это немного бессмысленно с точки зрения безопасности.
Что даст обратный прокси-сервер, это балансировка нагрузки, переключение, кеширование, SSL и фильтрация с загрузкой, что позволяет вашим веб-серверам делать то, что им подходит: обслуживание HTML.
7
Обратный прокси дает вам пару вещей, которые могут сделать ваш сервер более безопасным.
- Место для мониторинга и регистрации того, что происходит отдельно от веб-сервера.
- Место для фильтрации или межсетевого экрана отдельно от вашего веб-сервера, если вы знаете, что какая-то область вашей системы уязвима. В зависимости от прокси-сервера вы можете фильтровать на уровне приложения.
- Другое место для реализации ACL и правил, если вы не можете быть достаточно выразительными по какой-либо причине на своем веб-сервере.
-
Отдельный сетевой стек, который не будет уязвим так же, как ваш веб-сервер. Это особенно верно, если ваш прокси-сервер принадлежит другому поставщику.
Обратный прокси без фильтрации не автоматически защитит вас от всех, но если система, которую вам нужно защитить, имеет высокую ценность, тогда добавление обратного прокси-сервера может стоить затрат и затрат на производительность.
5
Он может защитить ваш сервер приложений от атак на основе ошибочных HTTP-запросов … Особенно, если на обратном прокси (а не на сервере приложений) возможно настроить именно то, как выглядит хороший запрос, и не разрешать плохие запросы через , Если вам нужно сказать, какие плохие запросы выглядят, это почти наверняка будет бесполезным. Другими словами, он может защитить от атак переполнения буфера, но не от SQL-инъекций.
В основном, это звучит как театр безопасности. Вы наняли консультанта по безопасности, и они должны сказать вам, что нужно сделать, чтобы улучшить вашу безопасность. Маловероятно, что злоумышленник когда-либо прорвется в обратный прокси, и если они просто обойдут его, они всегда могут обвинить вас; поэтому это безопасная рекомендация.
3
В принципе, обратные прокси будут скрывать вашу инфраструктуру от мира. Таким образом, это, в основном, случай безопасности безвестности, если ваш веб-сервер не является неуправляемым и незащищенным.
Он также может защитить ваши веб-серверы от какого-либо DOS (распределенного отказа в обслуживании), особенно если ваш сайт «тяжелый», действуя тогда как слой кэширования.
У него также есть некоторые ошибки: он скроет с вашего приложения реальный IP-адрес клиента. Это заставит вас потреблять больше мощности сервера и добавить слой вещей, которые могут сломаться. Помните, что ваш обратный прокси должен будет обрабатывать больше подключений (обычно в два раза больше: подключения к клиентам и подключения к вашему веб-серверу).
В конце дня обратный прокси-сервер не пощадит вас в любом случае защищенным веб-сайтом.
Я думаю, что Zoredache дал очень хороший ответ в отношении преимуществ, которые может предоставить обратный прокси. Я использовал Pound, который является обратным прокси-сервером, балансировщиком нагрузки и интерфейсом HTTPS.
Одно из преимуществ, о котором я не думаю никому другому, — это то, что вам не нужно открывать внешние IP-порты через внешний брандмауэр. Хорошая обратная прокси-система инициирует связь из вашей сети с сервером в DMZ, защищая сети от прямых атак. Это, однако, & как говорили другие, не защитит вас от плохо написанного заявления.
Load Balancing
Load balancers are most commonly deployed when a site needs multiple servers because the volume of requests is too much for a single server to handle efficiently. Deploying multiple servers also eliminates a single point of failure, making the website more reliable. Most commonly, the servers all host the same content, and the load balancer’s job is to distribute the workload in a way that makes the best use of each server’s capacity, prevents overload on any server, and results in the fastest possible response to the client.
A load balancer can also enhance the user experience by reducing the number of error responses the client sees. It does this by detecting when servers go down, and diverting requests away from them to the other servers in the group. In the simplest implementation, the load balancer detects server health by intercepting error responses to regular requests. Application health checks are a more flexible and sophisticated method in which the load balancer sends separate health-check requests and requires a specified type of response to consider the server healthy.
Another useful function provided by some load balancers is session persistence, which means sending all requests from a particular client to the same server. Even though HTTP is stateless in theory, many applications must store state information just to provide their core functionality – think of the shopping basket on an e-commerce site. Such applications underperform or can even fail in a load-balanced environment, if the load balancer distributes requests in a user session to different servers instead of directing them all to the server that responded to the initial request.
рассказ А о 3 компьютерах (вторая часть)
Для этого примера, я перечислю три компьютера, подключенные к Интернету.
- X = Ваш компьютер или «клиентский» компьютер в Интернете
- Y = обратный веб-сайт прокси, proxy.example.com
- Z = веб-сайт, который Вы хотите посетить, www.example.net
Обычно, можно было бы соединиться непосредственно от
Однако в некоторых сценариях, для администратора лучше ограничить или запретить прямой доступ и вынудить посетителей пройти Y сначала. Так, как прежде, у нас есть данные, получаемые от имени , который цепочки следующим образом: .
, Что отличается на этот раз по сравнению с «вперед, прокси», то, что на этот раз пользователь не знает, что получает доступ , потому что пользователь только видит, что связывается с . сервер невидим для клиентов, и только обратный прокси видим внешне. Обратный прокси не требует никакой конфигурации (прокси) на стороне клиента.
клиент думает, что только связывается с (), но действительность то, что передача всей коммуникации ( снова).
Reverse Proxy
Reverse proxy is mainly used by server admins to achieve load balancing and high availability. A website may have several web servers behind the reverse proxy. The reverse proxy server takes requests from the Internet and forward these requests to one of the web servers. Most visitors don’t know websites are using reverse proxy because they usually lack the knowledge and tools to detect it or they simply don’t care about it. Nginx can be acting both a web server and a reverse proxy at the same time. HAProxy is another well-known open-source reverse proxy software.
As Node.js become more and more popular in the web development community, web developers often put the builtin Node.js web server behind another web server like Nginx, so Nginx is the reverse proxy. One example is the Ghost blog platform.
Reverse Proxy
Whereas deploying a load balancer makes sense only when you have multiple servers, it often makes sense to deploy a reverse proxy even with just one web server or application server. You can think of the reverse proxy as a website’s “public face.” Its address is the one advertised for the website, and it sits at the edge of the site’s network to accept requests from web browsers and mobile apps for the content hosted at the website. The benefits are two-fold:
- Increased security – No information about your backend servers is visible outside your internal network, so malicious clients cannot access them directly to exploit any vulnerabilities. Many reverse proxy servers include features that help protect backend servers from distributed denial-of-service (DDoS) attacks, for example by rejecting traffic from particular client IP addresses (blacklisting), or limiting the number of connections accepted from each client.
- Increased scalability and flexibility – Because clients see only the reverse proxy’s IP address, you are free to change the configuration of your backend infrastructure. This is particularly useful In a load-balanced environment, where you can scale the number of servers up and down to match fluctuations in traffic volume.
Another reason to deploy a reverse proxy is for web acceleration – reducing the time it takes to generate a response and return it to the client. Techniques for web acceleration include the following:
- Compression – Compressing server responses before returning them to the client (for instance, with ) reduces the amount of bandwidth they require, which speeds their transit over the network.
- SSL termination – Encrypting the traffic between clients and servers protects it as it crosses a public network like the Internet. But decryption and encryption can be computationally expensive. By decrypting incoming requests and encrypting server responses, the reverse proxy frees up resources on backend servers which they can then devote to their main purpose, serving content.
- Caching – Before returning the backend server’s response to the client, the reverse proxy stores a copy of it locally. When the client (or any client) makes the same request, the reverse proxy can provide the response itself from the cache instead of forwarding the request to the backend server. This both decreases response time to the client and reduces the load on the backend server.
How Can NGINX Plus Help?
NGINX Plus and NGINX are the best-in-class reverse proxy and load balancing solutions used by high-traffic websites such as Dropbox, Netflix, and Zynga. More than 400 million websites worldwide rely on NGINX Plus and NGINX to deliver their content quickly, reliably, and securely.
NGINX Plus performs all the load-balancing and reverse proxy functions discussed above and more, improving website performance, reliability, security, and scale. As a software-based load balancer, NGINX Plus is much less expensive than hardware-based solutions with similar capabilities. The comprehensive load-balancing and reverse-proxy capabilities in NGINX Plus enable you to build a highly optimized application delivery network.
For details about how NGINX Plus implements the features described here, check out these resources:
Причины, почему X хотел бы использовать вперед прокси-сервер:
Вот (очень) частичный список использования вперед прокси-сервера.
-
1) X неспособно к доступу Z непосредственно, потому что
-
a) Кто-то с полномочиями администратора интернет-соединение решило блокировать весь доступ к сайту .
Примеры:
вирус Червя Storm распространяется путем обманывания людей в посещение , таким образом, у системного администратора есть заблокированный доступ на сайт для предотвращения пользователей от непреднамеренного инфицирования себя.
литий>
Сотрудники в крупной компании тратили впустую слишком много времени на , таким образом, управление хочет получить доступ заблокированное во время рабочего времени.
литий>
А локальная начальная школа запрещает доступ в Интернет к веб-сайт.
литий>
правительство А неспособно управлять публикацией новостей, таким образом, это управляет доступом к новостям вместо этого, путем блокирования сайтов такой как . См. СКАЛИСТАЯ ВЕРШИНА или FreeNet.
литий>
литий>
-
b) администратор заблокировался .
Примеры:
администратор Z заметил попытки взламывания, происходящие от X, таким образом, администратор решил заблокировать IP-адрес X (и/или netrange).
литий>
Z является веб-сайтом форума. массово рассылает форум. Z блоки X.
литий> литий>
Технические ограничения
У этой услуги есть некоторые технические ограничения, которые могут не позволить Вам ее использовать. Так как работа системы базируется на функциональности «обратный прокси», то фактически, вы будете иметь доступ из Интернет не к своему домашнему веб-серверу или IP камере, а к серверу, который скачает по вашему требованию страницу из домашней сети и «покажет» вам ее в Интернет браузере.
Для работы услуги наша система «обратный прокси» перезаписывает заголовки пакетов HTTP, меняет в них адреса и выпускает их в другом интерфейсе. Например, система получила ваш запрос из Интернет на показ страницы веб-сервера, перезаписывает заголовки и выпускает эти пакеты в вашей домашней сети. Так же она поступает и с ответным трафиком. При этом система обратного прокси-сервера не трогает содержимого потока HTTP, а интересуется лишь заголовками.
Все это будет успешно работать до тех пор, пока ваши внутренние IP адреса вида 192.168.x.x вдруг не окажутся в теле HTTP потока веб-страницы вашего домашнего сервера или веб-камеры.
К сожалению, такое может быть во всяких окнах авторизации к веб-камере или на криво написанных веб-серверах и приложениях.
В этом случае, наша система не сможет обнаружить такой адрес и заменить его, а поэтому такая ссылка не будет открыта извне — ведь она будет вести на адрес, например http:// 192.168.x.x/index.html, а должна была бы открывать http:// garazh110-camera.vpnki.ru/index.html
Увы, мы не можем исправить эту ситуацию, так как не обладаем техническими возможностями по поиску и перезаписи адресов в вашем потоке (и в заголовках и в теле потока), особенно, если учесть, что это может быть видеопоток.
Если такое ограничение коснулось вашего веб-сервера или камеры, то используйте доступ через VPN или через обычный http или SOCKS5 прокси. Ну и можете составить свое мнение о качестве программного обеспечения, написанного и работающего на вашем устройстве. К сожалению, китайские товары этим страдают.
Дополнительно следует учесть, что введенные вами на странице настройки будут применены не моментально (!), а через некоторое время (около 5 минут), о чем вам будет сообщено на странице настройки услуги публикации URL.