Pergunta

Confira este página de o New York Times:

http://homedelivery.nytimes.com/HDS/learnMorePopUp.do ?mode=common.learnMorePopUp
&productId=NDS
&prodRate=7.40

Fiquei surpreso ao ver que quando eu modificado manualmente o parâmetro prodRate, a página de atualização:

  • A taxa de inscrição introdutório.
  • A taxa de inscrição regular.

Tente você mesmo! Agora, eu não fiz desenvolvimento web muito, mas eu sei que isso provavelmente não deveria acontecer. Então, eu estou querendo saber:

  • Que tipo de implementação iria causar esse comportamento?
  • Como você modificar a página para ocultar tais parâmetros sensíveis do usuário final?
Foi útil?

Solução

Você pode querer reformular a sua pergunta, como as únicas respostas que posso conceber não são muito esclarecedora:

Q: Que tipo de implementação poderia causar este comportamento
? A: Um no qual a entrada de utilizador é permitido ao controlo interno, confiável comportamento. Se você está pedindo "por que alguém iria fazer isso", eu geralmente visto como um mal-entendido. O autor do código geralmente não percebe que o usuário pode (a) controlar o valor e / ou (b) até descobrir que ela existe. Na maioria das vezes, eu já vi isso implementado como um redirecionamento - você clicar em um botão, o servidor determina a quantidade, em seguida, redireciona o navegador para uma nova página que mantém o valor

Q: Como você modificar a página para ocultar tais parâmetros sensíveis do usuário final
A: Não armazenar o valor de uma maneira pela qual é editável pelo usuário final. Se você tiver armazenamento disponível no servidor (como um motor de Servlet) armazená-lo no contexto da sessão. Se você não tem um mecanismo de boa sessão, você pode armazená-lo em um cookie HMAC'd assinado ou.

Outras dicas

Eles estão provavelmente apenas ler o valor a direita fora do querystring para fins de exibição. I altamente dúvida (ou melhor, seria realmente espero) que qualquer processamento ordem real não é baseado fora esse valor, e sim de uma pesquisa usando o produto Id.

Bem, você realmente tentou encomendá-lo ainda? Pode validar a entrada no back-end.

Como a outras opções, eles poderiam ter considerado tanto a postar as informações ou colocar as informações em um cookie. Nem são exatamente à prova de idiotas. Você não pode obter uma nova janela com um poste e um usuário pode desativar os cookies.

Você não pode ordenar a partir dessa página, então eu não estou vendo uma falha de segurança aqui. Sim, é brega, mas eu estaria muito mais preocupado se o fluxo ordem real foi tão mal construído. Faz com que seja fácil de atualizar a taxa em um lugar e apenas passar o valor, para que eu possa ver como isso aconteceu.

Nós temos algumas páginas de rating que fazem praticamente a mesma coisa. Eles não estão ligados ao fluxo de compra real para que os parâmetros estão bem. Se o cliente quer se confundem editando um URL, que assim seja ... o fluxo ordem real é todas as edições banco de dados orientado e de usuário nunca são confiáveis.

Eu encontrei todos os tipos de más práticas como esta. Já vi sites passar consultas SQL inteiras em torno da QueryString, que são, em seguida, executado . Lembro-me também encontrar uma loja online que passou preços na querystring. Eu mudei um para um valor negativo e, com certeza, no check-out o preço foi menos! Eu não ir mais longe embora -. Tecnicamente ele é uma fraude e não vale a pena arriscar

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top