Jump to content


Photo

Duvida Sobre Segurança


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

#1 dddidan

dddidan

    Ativo

  • Usuários
  • 381 posts
  • Sexo:Masculino
  • Localidade:Taboão da Serra - SP

Posted 09/12/2008, 21:48

Galera...
Eu geralmente uso esse código para deixar as paginas dinamicas e não ter necessidade de criar trocentas paginas para o site:
<?php $page = $_GET['page']; ?> 
 <?php if(empty($page)) { include("meio.php"); } else { include("$page.php"); } ?></td>

mas hj eu tava pensando... se algum infiliz mal intencionado vem e me coloca:
http://www.site.com/index.php?$page=h...contemvirus.com
o Virus vem pro site...
Tem como prevenir isso?

Valews
Mais vale um Dev C++ na mão do que dois codeblocks voando

PHP - ||||||||||||||| MySql - |||||||||||||||
C/C++ - ||||||||||||||| Oracle - |||||||||||||||
PERL - |||||||||||||||

#2 Leone Fernandes

Leone Fernandes

    (y)

  • Usuários
  • 585 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 09/12/2008, 22:12

É PHP Injection.

Leia mais: http://en.wikipedia..../Code_injection
"Ler também é um exercício"



#3 dddidan

dddidan

    Ativo

  • Usuários
  • 381 posts
  • Sexo:Masculino
  • Localidade:Taboão da Serra - SP

Posted 09/12/2008, 22:55

Eu li uns tópicos a respeito, mas só falando de SQL injection...

Pelo que li, o php injection se dá mais facilmente nos includes ()...
então... como posso evitar que coloquem um xploit no meu include?
pq... se eu der um $_Get [$page] e dps mandar ele incluir, querendo ou não ele vai colocar a Xploit do cara no meu site...

Existe alguma função do php para verificar se o arquivo está no diretório?
se tiver dá para fazer isso... verifica se o arquivo está no diretório se sim então mostre, caso contrario Mensagem de erro

Edit:

Dei uma beeela googlada... e encontrei um script que me chamou atenção:
<?php
$pagina=$_GET['$page'];
	if(eregi("http|www|ftp|.dat|.txt|.gif|wget", $page))
	{
		echo "Erro. Pagina não encontrada";
	}else{
		if(!empty($page)) {
			@include ($page);
		}else{
			@include ("index.php");
		}
	}
?>

Mas minha duvida persiste... Como posso ter certeza absoluta se eu fiz um código sem "brechas"?

Edição feita por: dddidan, 09/12/2008, 23:14.

Mais vale um Dev C++ na mão do que dois codeblocks voando

PHP - ||||||||||||||| MySql - |||||||||||||||
C/C++ - ||||||||||||||| Oracle - |||||||||||||||
PERL - |||||||||||||||

#4 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 10/12/2008, 05:54

Primeiro. Isso não é PHP Injection e sim QUERY STRING INJECTION

Achei um link aqui que pode servir de referência:
http://forum.wmonlin...showtopic=60810

Sobre sseu código, não recomendo de forma alguma fazer includes dessa forma.
De preferência, use o switch, como citado no post que passei.
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.

#5 dddidan

dddidan

    Ativo

  • Usuários
  • 381 posts
  • Sexo:Masculino
  • Localidade:Taboão da Serra - SP

Posted 10/12/2008, 16:29

Desenvolvi algo mais simples...
Cada pagina declara uma variavel com valor X
quando carrega a pagina ele checa se esse valor existe. se existir ele abre, caso contrario ele mostra erro 404
Mais vale um Dev C++ na mão do que dois codeblocks voando

PHP - ||||||||||||||| MySql - |||||||||||||||
C/C++ - ||||||||||||||| Oracle - |||||||||||||||
PERL - |||||||||||||||




1 user(s) are reading this topic

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

IPB Skin By Virteq