Jump to content


Photo

Garantia Que Submit Esta Vindo De Uma Certa Pagina.


  • Faça o login para participar
4 replies to this topic

#1 Fabio1

Fabio1

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Não informado
  • Localidade:Mogi das Cruzes - SP

Posted 20/09/2006, 12:47

Desculpe, nao consegui dar um titulo melhor para esse topico.

Montei um sistema de cadastro de usuarios, com o site no ar, sempre aparece alguns 'idiotas' para tentar furar alguma protecao que fez.

No form mesmo eu limitei em 10 caracteres em um certo campo e sempre nao tive problema. Mas esses dias apareceu um usuario com mais de 10 caracteres. Depois descubri que essa pessoa copiou o codigo fonte para o proprio computador e modificou esse campo e colocou a url completo do script na action do form e fez o cadastro tranquilamente.

Nesse caso montei uma function para contar os caracteres e resolveu o meu problema, tentei por javascript mas da para fazer a mesma coisa.

Usando esse modo da para fazer muita coisa e nao da para deixar mandar certas informacoes via hiden...

Nesse caso toda vez que preciso mandar alguma informacao importante, faco a verificacao no php. Mas eh trabalhoso e estava procurando um jeito melhor para fazer essa verificacao.

Tentei usando session, mas testando consegui me cadastrar com o form do meu computador.

Tem como garantir que o form esta vindo de uma pagina especifica? Ou que esta vindo a informacao de tal url? Pois jah vi varios scripts de estatisticas ja funcionando que pega a ultima url antes de chegar na sua pagina. Como posso fazer isso?

Alguem pederia me ajudar?

Grato.

#2 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 20/09/2006, 12:58

porque você não valida este CAMPO com ER ( Expressão Regular )

ereg("^[a-z0-9]{0,10}$",$campo)

assim, só será permitido 10 caracteres (y)
mesmo que o "idiota" copie o código fonte não irá conseguir cadastrar um nome acima de 10 caracteres...

faça essa verificação antes de INSERIR no banco de dados

Leitura:
PHP
http://br.php.net/ma...uctures.for.php

ER
http://guia-er.sourc...et/guia-er.html

T+
-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#3 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 20/09/2006, 15:31

Tem como garantir que o form esta vindo de uma pagina especifica? Ou que esta vindo a informacao de tal url? Pois jah vi varios scripts de estatisticas ja funcionando que pega a ultima url antes de chegar na sua pagina. Como posso fazer isso?

Ter até tem... mas mesmo assim, tal pseudo-proteção pode ser facilmente quebrada. O certo mesmo é protejer o sistema, não fugir da proteção. Quando se diz protejer, é validar e tratar qualquer informação que possa estar sendo enviada de uma página para outra, tanto no cliente como no servidor. É trabalhoso? É! Se tudo fosse fácil, nada seria divertido... :P

Leitura recomendada: XSS (Cross-site scripting) ;-)

[]’s :DAté mais

#4 edero

edero

    Turista

  • Usuários
  • 53 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:PHP, DOT.NET, FLEX, SQL-SERVER, TDD, Agilidade, RAILS

Posted 21/09/2006, 08:57

Dá uma olhada neste artigo, vai resolver sua situação:

http://www.phpbrasil...cle.php/id/1097

Depois crie uma função, assim ficará fácil de implementar.

#5 aimola

aimola

    Webdeveloper

  • Usuários
  • 471 posts
  • Sexo:Masculino
  • Localidade:Sampa

Posted 21/09/2006, 09:10

Muito bom este artigo e qcho que é o que vc precisa.

Em relação ao XSS comentado pelo Paulo, term também este artigo em português para a galera que assim como eu não manja muito de inglês.
http://phpbrasil.com...icle.php/id/506

(y)

Edição feita por: aimola, 21/09/2006, 09:16.

Que os passos de hoje sejam maiores que os de ontem
e que os passos de amanhã sejam mais largos que os de hoje.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq