Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tubadc

função anti-php injection, vejam oque é possível melhorar...

Recommended Posts

Achei uma função na web não lembro onde e dei uma atualizada nas tags e tal... gostaria da ajuda de vocês para dar uma incrementada nela no sentido de tornar o mais seguro possível a inclusão de urls

 

<?php

function ant_phpinject($pagina){

  //Verifica se a string passada possui algum trecho invalido
  //Caso tenha mostra uma mensagem de erro
  if(eregi("http|www|ftp|.dat|.txt|.gif|wget|from|select|update|insert|delete|where|dro
 table|show ables|#|\*|--|\\\\", $pagina))
  {
	echo "Página Inválida! Estamos redirecionando você para página inicial.";
echo "<meta http-equiv=\"refresh\" content=\"2; URL=index.php\">";
  }else{
	if(!empty($pagina)) {
	  @include ("$pagina.php");
	}else{
	  @include ("index.php"); //essa seria a sua página principal
	}
  }
  }
?>

Gostaria de por exemplo fazer alguma verificação da existência do arquivo e tal... enfim... sugestões.....:)

 

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

legal!

 

atualizei

<?php

function ant_phpinject($pagina){

  //Verifica se a string passada possui algum trecho invalido
  //Caso tenha mostra uma mensagem de erro
  if(eregi("http|www|ftp|.dat|.txt|.gif|wget|from|select|update|insert|delete|where|drop table|show ables|#|\*|--|\\\\", $pagina))
  {
	echo "Página Inválida! Estamos redirecionando você para página inicial.";
echo "<meta http-equiv=\"refresh\" content=\"2; URL=index.php\">";
  }else{
	if(!empty($pagina)) {
		if (file_exists("$pagina.php")) {
			@include ("$pagina.php");
			} else {
			echo "Página Inexistente! Estamos redirecionando você para página inicial.";
echo "<meta http-equiv=\"refresh\" content=\"2; URL=index.php\">";
			}
	}else{
	  echo "Página Indefinida! Estamos redirecionando você para página inicial.";
echo "<meta http-equiv=\"refresh\" content=\"2; URL=index.php\">";
	}
  }
  }
?>

Existe algo mais para deixar ainda mais seguro...?

 

Obrigado desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voc6e pode melhorar a Expressão Regular: faça a validação com http://, ftp://, www.. Você também pode verificar se esses valores estão no começo da string, para que arquivos assim não sejam vloqueados: sobre_o_www.php[/b].

 

Você também pode verificar se as extensãoes estão no fim da string.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há dois modificadores para isso:

 

^ -> casa a ER no início da string

$ -> casa a ER no fim da string

 

Para entender melhor, tem que estudar Expressões Regulares:

http://guia-er.sourceforge.net

Compartilhar este post


Link para o post
Compartilhar em outros sites

ficaria assim então

 

if(eregi("^[www]|ftp://|http://|http|ftp|.dat|.txt|.gif|wget|from|select|update|insert|delete|where|drop table|show tables|#|\*|--|\\\\", $pagina))

 

?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela paciência mas sou ainda leigo em expressões regulares e estou tentando aprender...

 

teria como você me mostrar na prática, como ficaria isso no if acima.... se possível claro...

 

OBrigado mais uma vez e desculpe o incomodo ae..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.