protocolo HTTP
Na pilha de protocolos TCP / IP, que compreende um certo número de protocolos da camada de aplicação, o protocolo mais amplamente utilizado chamado protocolo HTTP. Usando o protocolo HTTP em uma ampla gama de vida diária, tais como quando o acesso ao local, o protocolo utilizado é o protocolo HTTP.
protocolo HTTP
HTTP baseia-se num modo de resposta do pedido, sem estado protocolo da camada de aplicação.
- Resposta a um pedido
da necessidade do cliente para enviar uma solicitação para um servidor web mais tarde, à espera de que o servidor retorna http mensagem de resposta. - Apátridas
vários tipos de informação entre o servidor todo o processo de protocolo http não será gravado.
Muitas vezes baseadas em conexão TCP, que http é embalado em pacotes de dados TCP a serem transmitidos, a grande maioria das aplicações Web são construídos em cima de protocolo HTTP, que está usando o navegador para acessar o web site são baseados no protocolo http como um padrão.
HTTP protocolo na URL de
HTTP é o URL de um tipo específico de URI, contendo informações de identificação utilizado para procurar um recurso.
formato geral URL é a seguinte:
http://host[“:”port][path]:
- http comprometeu a localizar recursos de rede através do protocolo HTTP;
- acolhimento representa o nome de domínio do host ou endereço IP;
- Porta Especifica o número de porta, em seguida, o padrão é a porta vazio 80;
- caminho especificado URI recurso solicitado
Por exemplo,
http://news.sina.com.cn/c/z/xjpfyzsg2014/
é uma URL específica
http pedido formato de mensagem de
uma solicitação HTTP consiste em três partes: a linha de solicitação, cabeçalho da mensagem, pedido corpo.
- A linha de pedido: especificar o que deseja para acessar recursos
- cabeçalho da mensagem: http significado dos campos especificados no acordo. cabeçalho da mensagem HTTP inclui cabeçalho comum, um cabeçalho de solicitação, cabeçalho de resposta, a entidade cabeçalho. Cada campo de cabeçalho é um nome + ":" + espaço + composição de valor, o nome de um cabeçalho campos mensagem são maiúsculas e minúsculas.
- Pedido de corpo: conteúdo específico especificada na mensagem de solicitação contém.
Http pedido de linha
método pedidos começa com um símbolo de linha, separadas por espaços, seguido por um URI e a versão do protocolo do pedido do cliente, o seguinte formato:
Method Request-URI HTTP-Version CRLF
- Método: indica um método de pedido;
- Request-URI: é um identificador de recurso uniforme;
- HTTP-Version: indica um pedido da versão do protocolo HTTP;
- CRLF: representa o retorno do carro e linha
Por exemplo, podemos entrar na home page Baidu, F12 para abrir a depuração browser. Encontrado rede, clique em e atualizar a página, o browser será capaz de ver o conteúdo do pedido.
GET / HTTP/1.1 // 请求行
Host: www.baidu.com
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9 //请求头
// 请求正文
......
O método do protocolo HTTP
- Get: Pedido de recurso identificado pelo Request-URI
- POST: acrescentar novos dados após o recurso identificado pelo Request-URI
- CABEÇA: Pedido mensagem em resposta a um recurso identificado pelo Request-URI cabeçalho
- PUT: um pedido de recursos de armazenamento para o servidor, e com a sua identidade como uma Solicitação-URI
- Apagar: solicita o servidor para excluir o recurso identificado pelo Request-URI
- TRACE: echo informações solicitação servidor solicitante recebeu usado principalmente para testar ou diagnóstico
- CONNECT: Reservado para uso futuro
- OPÇÕES: opções relacionados com o desempenho de solicitação ou consulta e outros recursos da consulta de servidor
Formato de mensagem de protocolo HTTP de resposta
compreende: o estado inicial da linha, a primeira porção de linha, o corpo da entidade.
HTTP/1.1 200 OK // 状态行
Bdpagetype: 2
Bdqid: 0xf63dd9120001138a
Cache-Control: private
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Date: Wed, 18 Mar 2020 05:02:14 GMT
Expires: Wed, 18 Mar 2020 05:02:14 GMT
Server: BWS/1.1
Set-Cookie: BDSVRTM=172; path=/
Set-Cookie: BD_HOME=1; path=/
Set-Cookie: H_PS_PSSID=30968_1426_21087_30903_30998_30824_31086; path=/; domain=.baidu.com
Strict-Transport-Security: max-age=172800
Traceid: 1584507734025483316217743576778242331530
X-Ua-Compatible: IE=Edge,chrome=1
Transfer-Encoding: chunked // 以上都是首部行等
// 实体主体
............
Riscos de segurança protocolo HTTP
(1) phishing
atacante forjado para um site de alguma forma. Por exemplo, o atacante vai criar um site, o conteúdo do site e é direcionado exatamente o mesmo, e, finalmente, espalhar a sua via de acesso na rede quando o cliente clique na ligação adequada, é possível acessar sites de phishing, este site para clientes é muito familiarizado, é susceptível de ser enganado. A principal razão é que os sites de phishing enganados não sei é verdadeira ou falsa, porque não há nenhum mecanismo de autenticação rigorosa no protocolo http, desta forma, é possível invasor para obter informações sensíveis sobre os usuários.
(2) Os ataques cross-site scripting
- Script: um pequeno programa que pode ser analisado para executar browser.
- ataques de script (ataque de script): Um atacante teria roteiro ofensiva enviado para o navegador interpretado de modo a obter dados do usuário ou danificar o sistema.
Para proteger a segurança dos dados do usuário, o navegador geralmente não permite scripts para acesso cross-sessão (sessão) de dados.
HTTP protocolo geralmente usa TCP para transferência de dados, sempre que o usuário para estabelecer a comunicação com um navegador web vai estabelecer uma conexão, que chamamos de uma sessão de dados entre diferentes conexão ou sessão está protegido navegador, o script é ele não pode ser atravessada sessão ou navegador para acessar os dados em outras páginas.
<SCRIPT>Alert(Document.Cookie)</SCRIPT>
A descrição acima é um script simples, que usa o cookie função de alerta para exibir as informações no documento, nomeadamente cookie contém informações sensíveis sobre o arquivo local do usuário, por exemplo, visitar um site de compras, servidor web envia informações de conta e senha do usuário é armazenado localmente, visite o site pela primeira vez deixou de entrar na conta e senha.
ataques de script procedimento
atacante envia um programa script para alvo, depois de ler um cookie alvo execução análise local e envia essa informação para o atacante.
Sessão ou script não pode cross browser para acessar os dados em outras páginas.
processo de cross-site scripting
Em tal processo uma, a fim de obter dados por um atacante, o atacante pode não enviar directamente o script para ser alvo de ataque.
Como conseguir cross-site-lo?
Primeiro, o atacante pode estar presente código de script ofensiva é enviado para o servidor, o script será armazenado no servidor local, o tempo de acesso ao servidor de destino, você pode acessar páginas da Web que contêm esses scripts, e essas páginas podem ele foi transferido para o atacante local e análise executada. É possível obter as informações pertinentes aos enviados ao ataque em processo de implementação.
Um atacante enviados para as páginas do roteiro de servidor web que contêm script pode gerar formas são:
- Forum
permite aos usuários enviar informações - Comentário
produtos avaliados, aftermarket avaliação permitiu a apresentação de informações - IM
permite aos usuários enviar mensagens - Social, aplicações de rede
permite que um usuário enviar e receber mensagens, ea discussão de Avaliação
Condição ocorre cross-site scripting ataques
- Permitindo que um usuário para inserir informações para a aplicação web, que permite ao usuário para fornecer conteúdo
- Os dados de entrada do usuário pode ser usado para gerar as páginas dinamicamente, quando a informação pode ser acessada, o armazenamento pode ser gerado dinamicamente do servidor web, um atacante.
- A entrada do usuário não é verificado pela legitimidade fornecido pelo programa ilegal atacante não foi detectado
Cross-site classificação ataques de script
-
Sítio persistente Cross (XSS persistente ou XSS armazenado)
dados de ataque armazenados no servidor. Quando um usuário acessa uma página web normal, páginas web geradas dinamicamente, o servidor será malicioso inclusão instruções na página web normal retornado ao usuário. -
Cross-site não persistente (não persistente XSS ou refletida XSS )
scripts de scripts maliciosos e é obtido imediatamente em resposta a uma solicitação HTTP após a execução, tais como a vítima (o servidor para gerar a página de acordo com os dados enviados pelo usuário malicioso). -
Cross-Site Document Object Model (XSS baseado em DOM)
tempo se o script do lado do cliente (por exemplo, JavaScript) para gerar dinamicamente HTML, não há fiscalização rigorosa e parâmetros de filtragem, pode levar a DOM (Document Object Model) ataques cross-site.
Quando o usuário através do navegador para acessar a página da web, o usuário é retornado a um modelo de objeto de documento , todos os objetos HTML, documento objetos é o documento mais importante, inclui também um monte de objetos palavras (tais como localização, URL, de referência e do corpo, etc.)
document.location
document.URL
document.URLUnencoded
document.referrer
document.write()
document.writeln()
document.boby.innerHtml
objeto documento contém muitas propriedades e métodos, estes métodos chamando ou cessão do imóvel, será capaz de cross-site scripting ataque, por exemplo:
http://www.abc.com/welcome.html
<HTML> <TITLE>Welcome!</TITLE> Hi <SCRIPT> var
pos=document.URL.indexOf("name=")+5;
document.write(document.URL.substring(pos,document.URL.length)); </SCRIPT>
<BR> Welcome to our system … </HTML>
Quando o usuário acessa esta página, o que requer que o usuário digite o nome, esta página irá exibir dinamicamente o conteúdo apropriado com base no nome digitado pelo usuário. Em circunstâncias normais, será exibido no navegador Welcome to our system
mas nós incorporar um pedaço de código como este:
http://www.abc.com/welcome.html?name= < script>alert(document.cookie)</ script>
Neste caso, o atacante será substituído com o nome do usuário algum código de script, para alcançar um cross-site scripting ataques contra os usuários.