Mudanças entre as edições de "Projeto Integrador - 2010.1 - Dicas de GAR"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 32: Linha 32:
 
Uma das formas de se alterar dinamicamente uma página Web, antes de entregá-la ao cliente que a solicitou, é através de ''proxies''. Com eles, é possível ler a requisição antes mesmo de consumir recurso de rede, além da possibilidade de modificar o conteúdo (''payload'') após o processamento da página no servidor Web.
 
Uma das formas de se alterar dinamicamente uma página Web, antes de entregá-la ao cliente que a solicitou, é através de ''proxies''. Com eles, é possível ler a requisição antes mesmo de consumir recurso de rede, além da possibilidade de modificar o conteúdo (''payload'') após o processamento da página no servidor Web.
  
No exemplo abaixo: foram utilizados os seguintes componentes:
+
==Componentes==
 +
No exemplo abaixo foram utilizados os seguintes componentes:
 
* Cliente Web: sem qualquer configuração adicional. Ferramenta utilizada: qualquer navegador com suporte a HTTP versão 1.1 ([http://mozilla.com Firefox], [http://www.google.com/chrome Chrome], etc.).
 
* Cliente Web: sem qualquer configuração adicional. Ferramenta utilizada: qualquer navegador com suporte a HTTP versão 1.1 ([http://mozilla.com Firefox], [http://www.google.com/chrome Chrome], etc.).
 
* ''Firewall'': através de regras de modificação dos pacotes IP, redirecionará, de forma transparente, os pedidos para o Analisador de Conteúdo. Ferramenta utilizada: [http://www.netfilter.org netfilter], popularmente conhecido como <tt>iptables</tt>.
 
* ''Firewall'': através de regras de modificação dos pacotes IP, redirecionará, de forma transparente, os pedidos para o Analisador de Conteúdo. Ferramenta utilizada: [http://www.netfilter.org netfilter], popularmente conhecido como <tt>iptables</tt>.
Linha 39: Linha 40:
 
* Servidor Web: monta dinamicamente as páginas HTML usando programação interpretada e banco de dados. Ferramenta utilizada: servidor Web [http://httpd.apache.org Apache] versão 2.2 com suporte à linguagem de programação [http://php.net PHP] e banco de dados [http://www.mysql.org MySQL].
 
* Servidor Web: monta dinamicamente as páginas HTML usando programação interpretada e banco de dados. Ferramenta utilizada: servidor Web [http://httpd.apache.org Apache] versão 2.2 com suporte à linguagem de programação [http://php.net PHP] e banco de dados [http://www.mysql.org MySQL].
  
 +
==Fluxograma dos pacotes==
 
<center><graphviz>
 
<center><graphviz>
 
digraph Navegacao
 
digraph Navegacao

Edição das 15h47min de 14 de junho de 2010

Organização

<graphviz>

digraph Serviços { splines = true

subgraph clusterRede { label = "Rede" DHCP }

subgraph clusterAplicacao { label = "Aplicação" DNS HTTP MySQL SMTP IMAP }

DHCP -> DNS -> HTTP MySQL -> HTTP -> MySQL DNS -> SMTP -> HTTP DNS -> IMAP -> HTTP }

</graphviz>

Modificação de Conteúdo Web

Uma das formas de se alterar dinamicamente uma página Web, antes de entregá-la ao cliente que a solicitou, é através de proxies. Com eles, é possível ler a requisição antes mesmo de consumir recurso de rede, além da possibilidade de modificar o conteúdo (payload) após o processamento da página no servidor Web.

Componentes

No exemplo abaixo foram utilizados os seguintes componentes:

  • Cliente Web: sem qualquer configuração adicional. Ferramenta utilizada: qualquer navegador com suporte a HTTP versão 1.1 (Firefox, Chrome, etc.).
  • Firewall: através de regras de modificação dos pacotes IP, redirecionará, de forma transparente, os pedidos para o Analisador de Conteúdo. Ferramenta utilizada: netfilter, popularmente conhecido como iptables.
  • Analisador de Conteúdo: filtra e modifica conteúdo (payload) da camada de Aplicação, como páginas HTML, imagens e outros. Ferramenta utilizada: Dansguardian.
  • Proxy: elemento intermediário nas requisições e respostas na camada de Aplicação, podendo atuar como filtro de conteúdo. Ferramenta utilizada: Squid.
  • Servidor Web: monta dinamicamente as páginas HTML usando programação interpretada e banco de dados. Ferramenta utilizada: servidor Web Apache versão 2.2 com suporte à linguagem de programação PHP e banco de dados MySQL.

Fluxograma dos pacotes

<graphviz>

digraph Navegacao {

Firewall [shape=plaintext] subgraph clusterCliente { label=Cliente Socket_C [label=Navegador,shape=Mrecord] } subgraph clusterAnalisador { label=Analisador Socket_A [label=Servidor,shape=Mrecord] Socket_AA [label=Cliente,shape=Mrecord] Filtragem_A [label=Filtragem,shape=Mrecord] Modificação_A [label=Modificação,shape=Mrecord] } subgraph clusterProxy { label=Proxy Socket_P [label=Servidor,shape=Mrecord] Socket_PP [label=Cliente,shape=Mrecord] Filtragem_P [label=Filtragem,shape=Mrecord] } subgraph clusterSite { label=Site Socket_S [label=Socket,shape=Mrecord] Montagem_S [label="Montagem do conteúdo dinâmico",shape=Mrecord] }

Socket_C -> Firewall -> Socket_A [label=1,color=red] Socket_A -> Filtragem_A [label=2,color=red] Filtragem_A -> Socket_AA [label=3,color=red] Socket_AA -> Socket_P [label=4,color=red] Socket_P -> Filtragem_P [label=5,color=red] Filtragem_P -> Socket_PP [label=6,color=red] Socket_PP -> Socket_S [label=7,color=red] Socket_S -> Montagem_S [label=8,color=red] Montagem_S -> Socket_S [label=9,color=blue] Socket_S -> Socket_PP [label=10,color=blue] Socket_PP -> Filtragem_P [label=11,color=blue] Filtragem_P -> Socket_P [label=12,color=blue] Socket_P -> Socket_AA [label=13,color=blue] Socket_AA -> Filtragem_A [label=14,color=blue] Filtragem_A -> Modificação_A [label=15,color=blue] Modificação_A -> Socket_A [label=16,color=blue] Socket_A -> Firewall -> Socket_C [label=17,color=blue] }

</graphviz>



Voltar para Página principal do Projeto