Escolar Documentos
Profissional Documentos
Cultura Documentos
SUMÁRIO
1 INTRODUÇÃO..................................................................................... 3
2 APLICAÇÕES WEB............................................................................. 4
2.1 Surgimento da Web ...................................................................... 4
2.2 Arquitetura Cliente-Servidor .......................................................... 6
2.3 Aplicações ..................................................................................... 8
3 CONCEITOS DE SEGURANÇA .......................................................... 9
3.1 Confidencialidade, Integridade e Disponibilidade ........................ 11
3.2 Vulnerabilidades mais comuns.................................................... 13
3.3 Qualidade do código ................................................................... 14
3.4 Criptografia.................................................................................. 15
3.5 Vazamento de informações......................................................... 15
4 PRINCIPAIS VULNERABILIDADES WEB ......................................... 22
4.1 INJEÇÃO DE SQL ...................................................................... 22
4.2 QUEBRA DE GERENCIAMENTO DE SESSÃO ......................... 26
5 SCRIPTS ENTRE SITES ................................................................... 30
6 REFERÊNCIA INSEGURA A OBJETO DIRETO ............................... 33
7 CONFIGURAÇÃO INCORRETA DE SEGURANÇA .......................... 34
8 EXPOSIÇÃO DE DADOS SENSÍVEIS .............................................. 35
9 FALTA DE CONTROLE EM NÍVEL DE ACESSO ............................. 36
10 FALSIFICAÇÃO DE SOLICITAÇÃO ENTRE SITES ...................... 37
11 USANDO COMPONENTES COM VULNERABILIDADES
CONHECIDAS ...................................................................................................... 39
12 ENCAMINHAMENTO E REDIRECIONAMENTOS INVALIDADOS 40
13 REFERÊNCIAS .............................................................................. 42
2
1 INTRODUÇÃO
Prezado aluno!
Bons estudos!
3
2 APLICAÇÕES WEB
https://veja.abril.com.br
4
um documento ou página situada em determinado endereço que referencia um
servidor web que ficará fornecendo tal conteúdo. Além disso Tim Berners-Lee
elaborou uma linguagem de marcação de texto, conhecida por HyperText Markup
Language (HTML), que precisaria ser usada para a constituição dos documentos
que seriam partilhados através da web (TAHA, 2017).
O desenvolvimento desmedido da internet sobreveio devido ao uso da web
e sua maneira de repartição de conteúdo, que excedeu a tarefa de partilhar saberes
entre cientistas de um núcleo de pesquisas e consentiu a troca de informações entre
pessoas de todo o mundo (TAHA, 2017).
Para compreender o funcionamento básico da web é preciso conceituar
alguns termos fundamentais como HTML, URL e links. A maior parte das
documentações presentes na web são notórios também como páginas web, que
exibem conteúdo do tipo textual, imagens, vídeos e outros. Essas páginas podem
ser encontradas através de um identificador. Oliveira (2012) apud Taha (2017)
expõe que cada página web exibe um identificador único conhecido por URL
(Uniform Resource Locator). A URL é uma continuação de caracteres, que
acompanha um determinado esquema e conjunto de regras de construção, sua
finalidade é identificar e consentir a localização de um recurso disponível na web,
conforme exposto na RFC 1738 (BERNERS-LEE; MASINTER; MCCAHILL, 1994
apud TAHA, 2017).
Pode-se falar que o esqueleto dessas páginas é o HTML, que definirá como
o conteúdo visualizado ficará estruturado e como será ajuntado em seções distintas.
O HTML é uma linguagem de marcação que descreve ao navegador como uma
página web deve ser apresentada ao usuário, marcando textos e outras informações
com dados conhecidos por tags. Esses dados podem determinar se um conteúdo é
uma imagem, definir que certo texto fique em negrito e conectar documentos entre
si. As páginas web podem estar conectadas entre si por meio de links, que são
elementos que sugerem ao navegador que ele deve solicitar determinado conteúdo
numa URL específica (TAHA, 2017).
Desta forma, alguém com acesso à Internet pode se conectar a web e
visualizar uma página por meio de um navegador, somente digitando a URL, e o
5
navegador encaminhará a requisição ao servidor, que provê o conteúdo neste
endereço, e que voltará como resposta uma página web ou determinado tipo de
conteúdo, que serão apontados no próprio navegador (TAHA, 2017).
Hoje em dia a web não trata mais somente de acesso a páginas estáticas
conectadas através de links, (UTO, 2013 apud TAHA, 2017). Os desenvolvedores
notaram na Web uma boa oportunidade para iniciar a criação de aplicações
distribuídas e essas aplicações deixam que inúmeros usuários acessem seus
recursos por meio de um navegador, sem necessidade de instalar o software
localmente. De acordo com as informações produzidas pelo usuário, uma aplicação
pode prover distintas respostas e de modo dinâmico modificar seu conteúdo em
resposta às requisições ao servidor de aplicações que precisará estar online.
Nesses casos é preciso a conexão com a Internet, embora já existem aplicações
que aceitam você trabalhar localmente sem conexão e quando ficar online é
concretizada uma sincronia dos dados (TAHA, 2017).
https://pt.wikipedia.org
6
Ao requerer páginas ou serviços na web, um usuário utiliza- se o modelo
cliente-servidor. Conforme Held (2000) apud Taha (2017), essa arquitetura
determina fundamentalmente que um ou mais computadores, conectados numa
rede, peçam a um ou mais servidores na mesma rede ou na Internet, conteúdo e
serviços, que estes não têm acesso ou que não podem estar disponíveis no lado
cliente sem passar antes por um conjunto de medidas de segurança para
provimento do serviço ou por questões de capacidade de processamento de dados.
Hoje em dia os sistemas na web já operam com um modelo conhecido por
arquitetura de 3 camadas. Held (2000) apud Taha (2017), informa que essa
arquitetura exibe ―um servidor de aplicação que é a objeto central do novo modelo.
Ele pode ser referido como um middleware, situado entre clientes e fontes de dados
ou sistemas legados, que gerencia e processa aplicativos de três camadas‖ (TAHA,
2017).
Nos sistemas em 3 camadas, figura 1, o cliente pede a grande parte dos
recursos ao servidor de aplicações pois têm vários recursos que operam com amplo
processamento e volume de informações, com cálculos complicados, upload de
conteúdo multimídia e que exigem alto poder de processamento nem sempre
disponível nas máquinas cliente (TAHA, 2017).
O modelo Web seguido nessa arquitetura, isola a entrada aos dados do
lado cliente, buscando impedir questões de segurança, por isso temos na maioria
das vezes a entrada a um banco de dados somente por meio de requisições ao
servidor, que precisará dar ou não autorização de acordo com os privilégios do
usuário (TAHA, 2017).
7
Figura 01 - Modelo cliente-servidor de 3 camadas
2.3 Aplicações
Para (KAPPEL, 2004) apud Taha (2017), uma aplicação Web é um sistema
de software fundamentado em tecnologias e padrões do World Wide Web
Consortium (W3C) que providencia recursos específicos de Web, como conteúdo e
serviços por meio de uma interface de usuário, o Web browser‖.
Di Lucca e Fasolino (2006) apud Taha (2017), asseveram que uma
aplicação web pode ser estimada como um sistema distribuído, apresentando uma
arquitetura multicamadas, com entrada concorrente por diversos usuários em vários
lugares do mundo, ajustado com ambientes de cumprimento heterogêneos. Ainda
segundo os autores, uma aplicação web pode ser componentizada, isto é, cada
elemento pode exibir tecnologias distintas, como a linguagem de programação
usada em sua construção, e ter a habilidade de causar conteúdo dinâmico de
acordo com a interação do usuário, a entrada de dados e o estado do servidor
(TAHA, 2017).
8
Essas aplicações são sistemas mais difíceis do que páginas estáticas na
web. A interação com o usuário torna-se mais frequente, tem um enorme número
de condições funcionais que consentem aos usuários gerar dados que geralmente
são persistidos em banco de dados e que são usados para determinar conteúdo
dinâmico a ser exibido pela própria aplicação. Essas aplicações na maioria das
vezes empregam o modelo de 3 camadas, onde na camada de cliente ou exposição
o usuário por meio da interface da aplicação faz requisições à camada de lógica de
negócio, especificamente ao servidor de aplicações, que pode pedir ou encaminhar
informações à camada de dados, e também responder às cobranças, gerando
conteúdo dinâmico a ser oferecido na camada cliente (TAHA, 2017).
3 CONCEITOS DE SEGURANÇA
https://triplait.com
9
O nascimento da Web e o ligeiro aumento de computadores conectados às
redes, faz com que as pessoas compartilhem cada vez mais informações na
Internet. Atualmente existem muitos sistemas complexos e que processam dados
sensíveis de milhares de pessoas. Podemos citar como exemplo o Internet banking,
Sistema de gerenciamento de bancos por meio do qual as pessoas podem executar
tarefas que antes eram realizadas apenas em agências bancárias. Tomando esse
sistema como exemplo, você pode tentar imaginar que tipo de dados o usuário está
trocando com o servidor que mantém essa aplicação. Senha e login são exemplos
de informações que o usuário necessita preencher para poder acessar o sistema.
Se um usuário for concretizar uma transferência de recursos, ele deverá outra vez
digitar a senha para aprovar a transação e provavelmente informar uma chave de
segurança que ele recebeu da instituição, ou ter acesso a certificados digitais que
demonstram sua autenticidade (TAHA, 2017).
Em um sistema de e-mail de uma organização é provável que aconteça a
troca de informações confidenciais e relevantes. Esses e outros exemplos,
evidenciam que nós partilhamos e guardamos várias informações, seja por meio da
Internet ou em redes locais, e que necessitam de um certo nível de segurança para
impedir que terceiros tenham acesso indevido, que utilizem nossos dados ou até
mesmo se façam passar por nós (TAHA, 2017).
Segurança da informação protege a informação de muitos tipos de ameaças
para garantir o prosseguimento do negócio, diminuir o risco ao negócio, elevar ao
máximo o retorno sobre os investimentos e as oportunidades de negócio.‖
(ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS, 2005, p. 9 apud TAHA,
2017, p. 12).
10
3.1 Confidencialidade, Integridade e Disponibilidade
http://www.controlonce.com/
11
Entrada indevida à e-mails, mensagens criptografadas, contas de vários
serviços, roubo de dados de transações eletrônicas, são exemplos de problemas
unidos à confidencialidade. Bishop (2005) apud Taha (2017), assevera que têm
mecanismos para o controle de acesso aos dados, como a criptografia, que na
maioria das vezes por meio de inúmeras operações matemáticas e de controle,
torna os dados incompreensíveis, criptografados.
Os algoritmos criptográficos mais contemporâneos costumam fazer uso de
chaves, que são parâmetros passados ao algoritmo para que este cifre os dados e
que uma pessoa não autorizada não consiga decifrá-los sem conhecer a chave.
Isso provoca outro problema, deve-se garantir a confidencialidade da chave (TAHA,
2017).
A propriedade de integridade tem como finalidade garantir se dada
informação ou recurso é garantido ou não, geralmente trata da integridade dos
dados, ou seja, do conteúdo da informação, e da raiz desses dados (BISHOP, 2005
apud TAHA, 2017). Uma informação é correta e confiável se ela não ocorreu
nenhuma adulteração e se for possível confirmar ou ter garantias da integridade da
sua origem. Podemos citar como exemplo o episódio de um usuário concretizando
o download de uma imagem de disco no formato .iso e que ele adoraria de saber
se os dados estão íntegros, que não tenha acontecido nenhuma falha durante o
processo, sem perder qualquer dado, ou que um software mal-intencionado
instalado em seu computador não tenha mudado os dados, ou até mesmo ter
efetivado o download de um arquivo que é dito ser de tal origem, mas na verdade é
de outra. (TAHA, 2017).
Em Bishop (2005) apud Taha (2017), são oferecidas duas maneiras de
garantia dessa propriedade. A primeira forma trata dos mecanismos de prevenção,
que buscam bloquear tentativas não autorizadas de modificar os dados e o uso de
caminhos não autorizados para modificar os dados. A segunda forma são
mecanismos de detecção que corroboram que a integridade dos dados não é mais
seguro, podendo utilizar recursos do sistema para gerar alertas com informações
do motivo da corrupção dos dados.
12
Segundo a Shirey (2000, p. 17) apud Taha (2017, p. 14) disponibilidade é
a ―propriedade de um sistema ou um recurso do sistema ser utilizável e acessível
mediante demanda por uma entidade do sistema permitida, de acordo com as
especificações de performance do sistema.‖ Quando têm disponibilidade, usuários
ou serviços aprovados precisam acessar dados, serviços e sistemas (PFLEEGER;
PFLEEGER, 2007 apud TAHA, 2017). Por exemplo, se um usuário pagar por um
serviço de streaming de dados, como serviços de transmissão de vídeos, séries e
filmes, e no contrato com o sistema que promove o streaming é proposto que este
deve estar disponível em data e hora específica, o serviço precisaria estar. Há
muitos problemas que podem tornar esses recursos indisponíveis, como desastres
naturais, problemas de conexão de servidor, falhas de desenvolvimento dos
sistemas e indisponibilidade por quantidade de acessos maior que a tolerada
(TAHA, 2017).
Um dos ataques mais famosos da atualidade é o Distributed Denial of
Service (DDOS), ataque de negação de serviço, que objetiva tornar um sistema
indisponível por meio da efetivação de acessos e envio de pacotes em ampla escala
à sistemas, com intenção de exceder a capacidade de processamento dos
servidores desses sistemas, tornando-os vagarosos e impossíveis de se usar
durante o ataque, ou até mesmo derrubando o serviço (TAHA, 2017).
13
funcionem de forma plena e sem erros ou dados incorretos em seu meio (FELIPE;
BARBOZA, 2018).
Para McClure, Scambray e Kurtz (2014) apud Felipe; Barboza, (2018)., o
perfil é importante para a segurança, sendo “[...] uma combinação de ferramentas e
técnicas, acompanhadas de uma boa dose de paciência e ordenação mental, os
invasores podem pegar uma entidade desconhecida e reduzi-la a uma gama
específica de nomes de domínio, blocos de rede, sub-redes, roteadores e
endereços IP individuais de sistemas diretamente conectados à Internet, assim
como muitos outros detalhes pertinentes”. Como ponto de partida no estudo das
vulnerabilidades mais comuns, tem- -se um artigo publicado por Wade (2015) apud
Felipe; Barboza, (2018), que cita as mais populares, sendo a ordem decrescente de
ocorrências:
• qualidade do código;
• criptografia;
• vazamento de informações;
• CRLF injection;
• cross-site scripting;
• acesso indevido;
• validação de dados deficiente;
• SQL injection;
• gerenciamento de credenciais falho;
• Erros de time ou state;
14
Como principal vulnerabilidade elencada, está a criação de código ruim por
parte do time de desenvolvimento responsável pelo sistema em foco. Muitas
empresas investem em frameworks para assegurar o aceitável de qualidade nos
sistemas criados por meio do emprego de boas práticas, bem como adotar medidas
mais rigorosas ao enviar um novo código para o ambiente de produção (FELIPE;
BARBOZA, 2018).
3.4 Criptografia
CRLF injection
15
O CRLF injection é um dos mais fáceis de se evitar e está na quarta posição
do ranking. Por meio do CRLF injection, é possível que, pelos códigos maliciosos
em lugares corretos, o invasor consiga dados confidenciais do sistema ou até
mesmo do próprio computador infectado do usuário vítima (FELIPE; BARBOZA,
2018).
Cross-site scripting
Acesso indevido
Outro tipo de invasão que é facilmente evitado por meio de uma consultoria
adequada. O acesso indevido é quando o invasor, por meio de brechas de
segurança na comunicação entre o servidor e o navegador do cliente, rouba acesso
do usuário vítima e também as informações contidas na sessão (FELIPE;
BARBOZA, 2018).
Todo campo de dados que o sistema receberá deve ser tratado. Entenda
por entrada qualquer campo em que o usuário irá entrar com um valor e esse valor
deve ser processado ou salvo pelo sistema. Assim, campos como nome, login,
senha ou endereço, por exemplo, no cadastro de cliente, devem ser validados para
conferir se está recebendo somente caracteres permitidos e não aceitar Exploração
16
de falha de segurança 3 entradas inválidas ou caracteres especiais, tais como
exclamação, interrogação, cifrão, asterisco, etc (FELIPE; BARBOZA, 2018).
SQL injection
Análise de vulnerabilidades
• Port scanner;
• Protocol analyzer;
• Vulnerability scanner;
• Honeypots.
Port scanner
Protocol analyzer
Veja a Figura 2.
20
Figura 2. Tcpdump
• Horário;
• IP de origem;
• porta de origem;
• IP de destino;
• porta de destino;
• protocolo;
• tamanho (FELIPE; BARBOZA, 2018).
• horário: 21h43m35s
• IP de origem: 216.58.202.3
• porta de origem: 443
• IP de destino: 192.168.15.5
• porta de destino: 41971
• protocolo: UDP
• tamanho: 288 (FELIPE; BARBOZA, 2018).
21
Assim, a leitura direta ficaria algo semelhante a:
Vulnerability scanner
Honeypots
Para atrair invasores, coletar informações sobre estes e, até mesmo, distrair
a sua atenção do sistema que realmente é importante, deve-se utilizar a ideia de
honeypots, que são iscas criadas dentro da rede ou sistema para direcionar as
invasões para esse ambiente e, dessa forma, livrar o ambiente (FELIPE; BARBOZA,
2018).
1=1 −−AND p a s s = ’ ’
s y s o b j e c t s whe rext y p e = ’ u ’ ) )
23
União de consultas (Union Query) - Esse ataque utiliza o operador UNION
que concretiza uniões entre duas ou mais consultas, o Quadro 3 retrata um exemplo
de consulta usando o operador UNION (MONTEVERDE, 2014).
p a s s = ’ ’; d r o p t a b l e u s e r s −− ’ AND pi n =123
(1 6) , IN p a s sw o r d VARCHAR ( 3 2 ) )
BEGIN
24
AND member_passwo rd= p a s sw o r d;
END
25
∙ Codificações Alternativas (Alternate Encodings) - Nesta técnica, os
invasores mudam uma consulta injetando codificação alternativa, como
hexadecimal, ASCII e Unicode. Desta forma, podem evadir filtros de caracteres
especiais de entrada conhecidos "bad character", um exemplo deste tipo de
consulta segue no Quadro 7 (MONTEVERDE, 2014).
26
MONTEVERDE, 2014), duas variantes desse tipo de vulnerabilidades são o
Hijacking Attacks e Session Fixation.
Hijacking Attacks (roubo de sessão) são fundamentados na interceptação
de cookies não criptografados. Cookies de autenticação comumente são inventados
durante o procedimento de autenticação do usuário. Depois de bem-sucedida a
validação das credenciais de autenticação do usuário, a aplicação Web produz
cookies de autenticação e os emite para o navegador. O navegador atribui esses
cookies a cada pedido que requer autenticação. De forma geral os cookies de
autenticação se tornam um substituto temporário para credenciais de usuário e
senha (DACOSTA et al., 2012 apud MONTEVERDE, 2014).
Os cookies são estáticos, durante sua existência não mudam. Do mesmo
modo, se um atacante rouba os cookies de autenticação, será capaz de representar
o usuário coligado a esse cookie. A Figura 1 mostra uma visão simplificada de um
Hijacking Attack em uma rede sem fio. Após a autenticação, a vítima utiliza um
cookie de autenticação em cada pedido para o aplicativo da Web (passo 1). Como
normalmente ocorre, o cookie é encaminhado desprotegido em toda a rede e é
capturado por um atacante que usa escutas na comunicação (passo 2). Enfim, o
atacante pode utilizar o cookie de autenticação roubado para fazer pedidos
arbitrários para a aplicação Web (passo 3), até que o cookie expire (DACOSTA et
al., 2012 apud (MONTEVERDE, 2014).
27
Figura 1: Exemplo simplificado de Hijacking Attack
Fonte: (DACOSTA et al., 2012)
28
Inicialmente, o atacante que, neste caso, ao mesmo tempo é um usuário legítimo
do sistema se registra no servidor (1) e lhe é emitido o session ID 1234 (2). O
atacante, então, emite a URL http://online.worldbank.dom/login.jsp?sessionid=1234
para a vítima que também é utilizador do Web banking, tentando atraír a acessá-lo
(3). O usuário (como conveniente para o nosso exemplo) acessa a URL, que expõe
página de autenticação do servidor no seu navegador (4). Nota-se que mediante
recebimento do pedido de login.jsp?sessionid=1234, a aplicação Web já tem
constituído uma sessão para este usuá- 14 rio e uma nova não deve ser inventada.
Por fim, o usuário fornece suas credenciais ao script de autenticação (5) e o servidor
outorga a entrada a sua conta bancária. Porém, neste ponto, sabendo a
identificação da sessão, o atacante também pode acessar a conta do usuário via
account.jsp?sessionid=1234 (6). Uma vez que a sessão já foi ligada anteriormente
que a vítima estivesse autenticada, então se diz que vitima esta autenticada na
sessão do atacante (MONTEVERDE, 2014).
29
O exemplo apresentado na Figura 2 é o mais simples e menos perigoso dos
ataques de fixação de sessão e tem muitas falhas (para o atacante), tais como: ele
tem que ser um usuário legítimo no servidor de destino e tem que enganar o usuário
para se autenticar através da URL pré-definida pelo atacante. Entretanto, existem
outras maneiras de fixação de sessão como Session ID in a hidden form field que
redireciona a vítima para um servidor Web falso para capturar suas credenciais e
fixar uma sessão (MONTEVERDE, 2014).
30
Olhe essa foto!
31
O ataque XSS fundamentado em DOM é um tipo de ataque que transforma
o ambiente DOM do navegador do usuário explorando scripts existentes na
aplicação Web, para se comportarem de forma impensada. Como consequência a
página Web não modifica, mas o código contido no lado do cliente muda devido a
alterações no ambiente DOM da página se tornando malicioso e executando ações
distintas do esperado (OWASP, 2013ª apud MONTEVERDE, 2014). O código do
Quadro 10 mostra a estrutura de uma página Web vulnerável ao ataque XSS
baseado em DOM (MONTEVERDE, 2014).
<head>
</head>
<body>
<select>
<script >
</script >
</select >
</body >
</html >
32
Quadro 10: Exemplo XSS Baseado em DOM
35
o trânsito na rede, ou a partir do navegador do usuário (OWASP, 2013ª apud
MONTEVERDE, 2014). Mesmo com o uso de criptografia quando essa é fraca pode
danificar os dados em trânsito e falhas no navegador Web também são muito
comuns e simples de se detectar, mas são complexas de procurar em larga escala
(VIJAYARANI; TAMILARASI, 2011 apud MONTEVERDE, 2014).
http://example.com/app/getappInfo
http://example.com/app/admin\ _ getappInfo
37
A maior parte dos sítios Web tem mecanismos que conserva o usuário
autenticado utilizando o seu navegador, como por exemplo, cookies de sessão,
credenciais de autenticação básica, endereço IP. Assim sendo, quando um usuário
está autenticado em um sítio o mesmo não tem como saber se o pedido foi feito por
um usuário legítimo. Desta forma então, o atacante de posse de dados que o
autentiquem no site pode executar várias ações indesejadas sem o conhecimento
antecedente da vítima (OWASP, 2013ª apud MONTEVERDE, 2014).
Conforme Barth et al. (2008) apud Monteverde (2014), um ataque CSRF
rompe a integridade da sessão do usuário com um determinado sítio, injetando
solicitações de rede por meio do navegador da vítima. Os navegadores Web por
meio de suas políticas de segurança deixam que sítios Web encaminhem
solicitações HTTP de qualquer endereço de rede. Por sua vez, essa política tolera
que o atacante possa controlar o conteúdo processado pelo navegador em seu favor
(MONTEVERDE, 2014).
38
A Figura 4 ilustra um ataque CSRF aonde a vítima ao acessar a página Web
maliciosa é desviada ao sítio Web www.google.com, fazendo que a vítima se
autentique, o atacante então sequestra os cookies do usuário e se autentica no site
se passando pelo usuário. Mais tarde a vítima faz buscas e o atacante tem acesso
a todo seu histórico de procuras (MONTEVERDE, 2014).
39
Vulnerabilidades de componentes causam vários tipos de riscos, desde
riscos triviais a códigos maliciosos aprimorados projetados para alcançar uma
organização específica. Componentes com falhas quase sempre podem
comprometer por completo aplicações inteiras. Um exemplo ocorrido em 2011 com
o Apache CXF Authentication Bypass ao não aprovisionar um token de identidade,
consentia aos atacantes invocar qualquer serviço Web com permissão total (WU et
al., 2010 apud MONTEVERDE, 2014).
http:// www.example.com/redirect.jsp?url=evil.com
40
Quadro 14: Exemplo de Encaminhamento e Redirecionamentos
Invalidados.
41
13 REFERÊNCIAS
42