Execução de uma conta bancária usando o Ajax em um carrinho de comprasImplementação de uma conta bancáriaImplementação de uma conta bancária é semelhante à aplicação de um carrinho de compras. A única diferença real é que você precisa de segurança. Por exemplo, se registra maryjane em sua conta e ela faz referência a URL / conta / maryjane, então você só quer maryjane ou uma pessoa apropriada para ler os dados. Ninguém deve receber um inválido erro credenciais de segurança. O restante deste artigo incidirá sobre como usar cookies e autenticação HTTP para autenticar os usuários: • HTTP cookies: Cookies são identificadores HTTP enviado no cabeçalho HTTP entre o cliente eo servidor. O servidor é responsável por gerar um cookie, eo cliente é responsável por enviar o cookie para o servidor para uma determinada URL e seus descendentes. • Autenticação HTTP: Usando a autenticação HTTP, é possível autenticar usuários. Então, sempre que o conteúdo pedido de usuários para um domínio determinado URL, o cliente envia as informações de autorização. Autenticação HTTP é semelhante a um cookie, exceto que os usuários devem se autenticar. Quer usar cookies ou autenticação HTTP, os clientes enviam um sinal sempre que quiser acessar um determinado URL. O servidor irá validar se o token tem permissão para acessar a URL. Usando cookies para autorizar o acesso
HTTP cookies4 têm uma má reputação, parcialmente imerecido e, portanto, muitos vão argumentar que você não deve usar cookies. O problema com os cookies não tem a ver com sua teoria, mas sim com sua aplicação e consequências. Como uma analogia da vida real, considere a entrar em um shopping center onde alguém lhe dá um sinal na entrada, que pode ter ou não . Se você se recusar a ficha e entrar no shopping, todas as portas da loja, de repente perto. Você pode passear no shopping, mas você só pode olhar a mercadoria através das janelas. Você ainda pode ver o conteúdo e tudo o que a loja oferece, mas está atrás do vidro. Por outro lado, se você aceitar o símbolo, a loja de portas permanecem abertas, e você pode ver todos os produtos. Para ser útil, os balconistas oferecer recomendações sobre as melhores ofertas no shopping. No entanto, há um tom escuro para a experiência: o shopping está assistindo a cada passo que você faz, e tudo o que você olha está sendo monitorado. Evidentemente, o shopping garante que as informações não serão utilizadas para outros fins, mas a pergunta é: onde é que essas recomendações ou melhores ofertas vêm? As fichas ou cookies são usados para controlar as pessoas. Estou dividido quanto ao uso de cookies não vejo nada de muito preocupante sobre eles, nem estou entusiasmado com eles. HTTP cookies são um meio para um fim. Gerando o Cookie É possível gerar um HTTP cookie5 sem usar a ajuda de uma biblioteca. Por causa da prevalência de cookies, a maioria das bibliotecas do lado do servidor tem classes ou funções para gerar cookies com base em alguns parâmetros. Usando o servidor disponível bibliotecas de lado é altamente recomendável. Gerar o cookie usando o servidor de bibliotecas lateral não é difícil. Quando o ASP.NET usando, você usaria o seguinte código fonte: Mycookie HttpCookie = HttpCookie ( "Sample", myvalue "); myCookie.Path =" / ajax/chap07 "; Page.Response.Cookies.Add (mycookie); Você instanciar um cookie (HttpCookie), e em aminimum, você especifica o exemplo (chave) e valor (myvalue). A combinação de teclas de valor par é enviado entre o cliente eo servidor. O myCookie.Path propriedade de cookie especifica para que a URL e seus descendentes, o cookie é válido. Comparando este a autenticação HTTP, o caminho do cookie é igual ao campo de autenticação de HTTP. Você adiciona o cookie recém-criado para a resposta, utilizando o método Page.Response. Cookies.Add. Quando um cookie é adicionado, a resposta HTTP irá gerar um cookie usando o cabeçalho Set-Cookie HTTP, como ilustra a seguinte resposta do servidor HTTP: HTTP/1.0 200 OK Server: Mono-XSP Server/1.1.13.0 Unix X-Powered-By: Data Mono: Mon, 28 Aug 2006 17:31:14 GMT Content-Type: text / html; charset = UTF-8 Set -Cookie: Amostra = myvalue; path = / ajax/chap05 Content-Length: 388 Keep-Alive: timeout = 15, max = 99 Connection: Keep-Alive A exemplo do bolinho tem um valor de myvalue e é válido para o caminho / ajax/chap05. Porque não há nenhum valor expira, o cookie só é válido para toda a vida do navegador. Se o navegador for fechado, o cookie é excluído, portanto, comportando-se como uma autenticação baseado em HTTP identificador de usuário. Entendendo como o Client Gerencia o Cookie Quando o cliente recebe o cookie, o cookie será gravado automaticamente se o cliente é um navegador ou o objeto XMLHttpRequest do navegador. Na verdade, o JavaScript no lado do cliente não tem absolutamente nada a ver com o cookie atribuído, porque tudo ocorre de forma transparente . Por exemplo, se um navegador carrega uma página e um "cookie" é atribuído a todo o domínio, o cookie será enviado quando o objeto XMLHttpRequest solicita uma página dentro do domínio. Armazenando informações sigilosas, como senhas ou qualquer tipo de informação pessoal, no prazo o cookie não é recomendado. Um "cookie" é uma referência à informação, e não um repositório de informações. Quando os usuários têm sido autenticado usando outros meios, um cookie deve ser usado apenas como um símbolo para identificar o usuário. Identificação de um usuário com um bolinho Quando o servidor gera um cookie, não significa nada, pois um cookie é apenas um símbolo. O cookie deve ser cruzadas com um usuário específico. Para crossreference o token, você deve aplicar um mecanismo de autenticação. Você pode usar um dos dois mecanismos de autenticação. Primeiro, você pode amarrar o cookie com a autenticação HTTP. Segundo, você poderia criar uma página HTML que associa o cookie com um usuário. Usando a autenticação HTTP para um usuário associado a um cookie que envolvem proteger um arquivo que requer uma autenticação explícita. Quando o usuário é autenticado usando a autenticação HTTP, o arquivo protegido é responsável por associar o cookie e informações de autenticação. O usuário não precisa ser autenticado usando a autenticação HTTP. Um formulário em HTML pode ser utilizado. Usando o formulário HTML, você é responsável por fornecer o código que gere um usuário. Por causa deste código adicionado, o mecanismo de autenticação HTTP é preferível, porque é a base do protocolo HTTP. Utilizando Autenticação HTTP Autenticação HTTP é provavelmente uma das técnicas mais subutilizado de criar um identificador de usuário. A maioria das aplicações Web tendem a preferir os cookies HTTP, autenticação HTTP, mas oferece algumas ainda a ser discutido opções que cookies HTTP não. No início dos anos noventa, a autenticação HTTP não era muito conhecido e foi considerado inseguro em geral, porque o cliente que constantemente estar enviando o nome de usuário e senha para o servidor sempre que uma autorização foi executada. Para contornar o problema de segurança, de uma forma mais segura de autenticação HTTP foi criado, chamado HTTP Digest Authentication. HTTP Digest Authentication não foi amplamente distribuída nos primórdios da Web. Claro que, hoje, que não é o caso, porque cada browser, ou pelo menos a maioria dos browsers, suporte HTTP Digest authentication. Autenticação HTTP é uma bênção e uma maldição, em que os usuários devem se autenticar sempre que sair e reiniciar o navegador. A bênção é que a informação de autenticação não é enviada automaticamente, ea maldição é que os usuários devem se autenticar antes de iniciar uma sessão no site aweb. Alguns podem considerar que requerem ser autenticados uma desvantagem, mas quando a segurança é importante, usando a autenticação HTTP garante que dá os direitos corretos para o usuário identificado. A nível técnico, a autenticação HTTP é um mecanismo pelo qual um usuário solicita o conteúdo de um recurso, e o servidor emite um desafio, pedindo identificação. Depois que o usuário insere as informações apropriadas, o servidor irá autenticar o usuário. Se a autenticação de obras, o navegador baixa a representação do recurso. A HTTP típica conversa digerir autenticação é descrito nas etapas seguintes. O processo começa com o cliente solicitando um recurso: GET / HTTP/1.1 Host: Júpiter: 8100 User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv: 1.7.8) Gecko/20050511 Accept: text / xml , aplicação / aplicação XML, XHTML / + xml, text / html; q = 0.9, text / plain; q = 0.8, image / png ,*/*; q = 0.5 Accept-Language: en-us, en; q = 0,5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1, UTF-8; q = 0.7, *; q = 0.7 Keep-Alive: 300 Connection: keep-alive O recurso é protegida e, portanto, o servidor será um desafio para a autenticação: HTTP/1.1 Authorization Required 401 Data: Sun, 27 Aug 2006 14:00:05 GMT Server: Apache/2.0.53 (Ubuntu) PHP/4.3.10-10ubuntu4 WWW-Authenticate: Digest realm = " Domínio privado ", nonce = 0hvlrVH/AwA" = 8225d4804076a334d81181695204fee405adaaee ", algorithm = MD5, domínio =" / teste ", qop =" auth "Content-Length: 497 Keep-Alive: timeout = 15, max = 100 Connection: Keep - Alive Content-Type: text / html; charset = ISO-8859-1
O cliente recebe o código de erro HTTP 401 e olha para o cabeçalho HTTP WWW-Authenticate. O valor do HTTP WWW-Authenticate contém mecanismo de autenticação que está sendo solicitado. Neste exemplo, HTTP Digest Authentication for solicitado. Como uma nota lateral, é possível usar a autenticação básica, mas porque não é considerado seguro, ele é evitado. Como resposta a este desafio, o browser gera uma caixa de diálogo, pedindo um nome de usuário e senha. O usuário digita o nome de usuário e senha, o que faz com que o navegador para reeditar o pedido inicial com a informação adicionada a autenticação do usuário, como mostrado aqui: GET / HTTP/1.1 Host: localhost: 8100 User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv: 1.7.8) Gecko/20050511 Accept: text / xml , aplicação / aplicação XML, XHTML / + xml, text / html; q = 0.9, text / plain; q = 0.8, image / png ,*/*; q = 0.5 Accept-Language: en-us, en; q = 0,5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1, UTF-8; q = 0.7, *; q = 0.7 Keep-Alive: 300 Connection: keep-alive Authorization: Digest username = "cgross", realm = "Private Domain", nonce = 0hvlrVH/AwA "= 8225d4804076a334d81181695204fee405adaaee", uri = "teste /", algorithm = MD5, response = "fc4ec419438f87a540d8898a537ea401", qop = auth, nc = 00000001, cnonce = "01b6730aae57c007" O pedido resultante é semelhante ao pedido inicial, a menos que há um cabeçalho HTTP adicionais, autorização. Quando confrontado com o pedido o mesmo URL, o servidor busca o cabeçalho HTTP Authorization. Se o servidor verifica o cabeçalho, o servidor irá verificar as informações e, em seguida, dependendo da verificação, quer retornar outro erro HTTP 401, fazendo com que o navegador para gerar uma caixa de diálogo que pede ao usuário para autenticar-se, ou considerar o usuário autenticado. Se a informação de autenticação fornecido está correto, a representação de associados é baixado. Quando utilizar a autenticação HTTP, a autorização do cabeçalho HTTP é enviado para todas as URLs e seus dependentes que foram especificados pelo cabeçalho WWW-Authenticate enviado pelo servidor. Nesse exemplo, o domínio de valores = "/ teste" refere-se ao único URL / teste e suas dependências. Implementando Autenticação HTTP Você não deve escrever qualquer código que gerencia a autenticação HTTP. Todos os servidores web são capazes de gerir a autenticação HTTP, e você deve deixar isso como um exercício administrativo. Isso não significa que você não usar a autenticação HTTP. Você ainda precisa saber se um usuário é autenticado, e você precisa se associar aquele usuário com as informações identificador de usuário. Do ponto de vista programático, as informações de autenticação está disponível pelo servidor-estrutura fornecida pedido. Autenticar Quando É necessário não Um dos efeitos colaterais de autenticação HTTP é que o conteúdo é geralmente protegidos ou não protegidos. Tradicionalmente, e é por isso que os cookies são usados autenticação HTTP não pode ser desativado para um recurso e, em seguida, voltou novamente para o mesmo recurso. Isso seria confundir os usuários, porque tal como está agora, a autenticação HTTP é uma configuração global e não fixação de um indivíduo. Em outras palavras, se a autenticação é necessária para um, então é necessário para todos. Isso poderia representar um problema. Digamos que um usuário está navegando em um site e quer comprar algo, que o usuário vai precisar de um carrinho de compras. Entanto, um identificador de usuário é necessária para implementar um carrinho de compras. Para criar um carrinho de compras, recursos desprotegido precisam ser protegidos, mas a proteção é global, para que todos teriam de receber um carrinho de compras depois de navegar na primeira página de um site de compras e começar a comprar alguma coisa. Boa idéia para impulsionar uma economia, mas isso não vai acontecer. Para contornar esta questão da protecção às vezes, você pode usar uma técnica de autenticação HTTP, como segue: 1. Deixe o usuário navegar no site, como de costume (por exemplo, http://mydomain.com/browse). 2. Em cada página acessada, adicionar um link protegido para indicar que o usuário deseja ser autenticado (http://mydomain.com/browse/authenticate). 3. Quando o usuário clica no link de autenticação após a autorização, os reinos HTTP (domínios), que incluem o conteúdo desprotegido são atribuídos na resposta (http://mydomain.com/browse). 4. Quando o usuário navega a URL http://mydomain.com/browse, informações de identificação do usuário é enviada, mesmo que ele não é necessário. Esse truque funciona muito bem se você usar HTTP Digest authentication. O seguinte exemplo de configuração do Apache HTTPD usa essa técnica: Directory "/ var / www / browse / autenticar"> AllowOverride AuthConfig AuthType Digest AuthDigestDomain / navegar / navegar / autenticar AuthDigestFile "/ etc/apache2/digestpasswd" AuthName "Domínio Privado" Require valid-user A técnica é implementada pelo item de configuração AuthDigestDomain, onde ambos os URLs / navegar e / browse / autenticar são referenciadas. Porque as referências do item de configuração do Diretório do URL / browse / autenticar, somente o URL / browse / autenticar será desafiado para uma autenticação. Para ilustrar a técnica que realmente funciona, considere a seguinte conversa HTTP. Primeiro, é feita uma solicitação para um recurso protegido: GET / browse / HTTP/1.1 Host: Júpiter: 8100 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv: 1.7.5) Gecko/20041220 K-Meleon/0.9 Accept: text / xml, application / xml, application / xhtml + xml, text / html; q = 0.9, text / plain; q = 0.8, image / png ,*/*; q = 0,5O servidor responde como de costume com um código de retorno HTTP 200, o que faz com que o cliente para carregar a página resultante. Em seguida, o cliente faz outra solicitação para o link protegido, porque o usuário quer fazer compras e precisa ser autenticado. O cliente faz a solicitação para o seguinte conteúdo protegido: GET / browse / autenticar HTTP/1.1 Host: 192.168.1.103:8100 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv: 1.7.5) Gecko/20041220 K-Meleon/0.9 Aceitar : text / xml, application / aplicação XML, XHTML / + xml, text / html; q = 0.9, text / plain; q = 0.8, image / png ,*/*; q = 0,5 O servidor responde com um desafio de autenticação: HTTP/1.1 Authorization Required 401 Data: Seg, 28 Ago 2006 16:08:28 GMT Server: Apache/2.0.53 (Ubuntu) PHP/4.3.10-10ubuntu4 WWW-Authenticate: Digest realm = "Private Domain", nonce = "yiLhlmf / AWA = e1bafc57a6151c77e1155729300132415fc8ad0c", algorithm = MD5, domínio = "/ navegar / navegar / autenticar", qop = "auth" Content-Length: 503 Content-Type: text / html; charset = ISO-8859-1Na resposta do servidor para o identificador de domínio, um recurso desprotegido está definido. Esta é a técnica utilizada para enviar informações de autorização para o conteúdo desprotegido. O cliente responde com a autenticação do usuário, como segue: GET / browse / autenticar HTTP/1.1 Host: 192.168.1.103:8100 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv: 1.7.5) Gecko/20041220 K-Meleon/0.9 Aceitar : text / xml, application / aplicação XML, XHTML / + xml, text / html; q = 0.9, text / plain; q = 0.8, image / png ,*/*; q = 0,5 Authorization: Digest username = "cgross" , realm = "Domínio Privado", nonce yiLhlmf = "/ AWA = e1bafc57a6151c77e1155729300132415fc8ad0c", uri = "/ browse / autenticar", algorithm = MD5, response = "c9b5662c034344a06103ca745eb5ebba", qop = auth, nc = 00000001, cnonce = "082c875dcb2ca740"Após a autenticação, o servidor permite a descarga do conteúdo protegido. Agora, se o cliente navega a URLs desprotegido novamente, as informações de autorização é passada para o servidor, como ilustra a seguinte solicitação: GET / browse / morecontent / HTTP/1.1 Host: Júpiter: 8100 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv: 1.7.5) Gecko/20041220 K-Meleon/0.9 Accept: text / xml, application / aplicação XML, XHTML / + xml, text / html; q = 0.9, text / plain; q = 0.8, image / png ,*/*; q = 0,5 Authorization: Digest username = "cgross", realm = "Private Domain", nonce yiLhlmf = "/ AWA = e1bafc57a6151c77e1155729300132415fc8ad0c", uri = "/ browse / morecontent /", algorithm = MD5, response = "18ccd32175ce7a3480d5fbbc24de8889", qop = auth, nc = 00000005, cnonce = "0d448aca73b76eb1" Para essa solicitação, o cliente tem enviado informações de autorização para um URL que não exigem autenticação. Simplificando, o mecanismo de autenticação se tornou um "Cookie", mecanismo que é controlada pelo cliente. O cliente está em total controle de quando se autenticado e quando o anonimato. Você deve se lembrar dos seguintes pontos: • O artigo da implementação de um carrinho de compras ou conta bancária envolve a definição de uma acção e um URL exclusivo. • A URL ação é responsável por gerar um URL exclusivo. • Pode-se considerar a URL exclusivo para ser um URL personalizado que substitui a necessidade de manter um servidor objeto da sessão lado. • Server-side sessão objetos não são úteis quando você quer escrever serviços flexíveis web. Os exemplos carrinho ilustrado que você pode usar carrinhos de compras pré-definidas para agregar valor a uma loja online. • Você pode aplicar o redirecionamento da URL de ação para a URL original usando o HTTP 300 série de códigos de status. No entanto, não utilizam esta série de resultados de estado códigos na chamada XMLHttpRequest saber o que o original é URL. • O mecanismo preferido quando usando XMLHttpRequest para redirecionar é a utilização do código de status HTTP 201. Esse código significa que um novo recurso que foi criado, a partir de uma perspectiva teórica, à intenção do princípio do URL original. • O servidor geralmente não se completa URLs únicas. É da responsabilidade do cliente para associar um determinado usuário com uma determinada URL original. Se o URL original é anônima, como um carrinho de compras, então você deve usar cookies client-side. Se o URL original tem restrições de segurança, então você deve usá-servidor cookies lado ou de autenticação de HTTP. • Quando a implementação de segurança, você pode usar cookies enquanto os cookies não são usados para gerar conteúdo. Os cookies são usados para autorizar o acesso a um recurso. • Cookies e mecanismos de autenticação HTTP são os preferidos meios utilizados para implementar a identificação do usuário. • Ao implementar a funcionalidade de redirecionamento, você pode não cache a resposta da acção do URL, porque vai levar a problemas de consistência dos dados. • Unique URLs são processados no lado do servidor usando um dos dois mecanismos: um mecanismo de reescrita de URL pré-definido, como o Apache mod_rewrite, ou a implementação de um filtro que um manipulador de metas específicas. O mecanismo preferido é um filtro que um manipulador de metas específicas, mas para fins de herança, é totalmente aceitável usar um mecanismo de reescrita de URL predefinido. um artigo submetido por Sonja Lande Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre. Importante: Este artigo "Implementação de uma conta bancária usando o Ajax em um carrinho de compras" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.
|
|||||
| Online: 347 users browsing the articles directory |
|
|