Jump to content


Photo

Query String


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

#1 jeanmax

jeanmax

    Normal

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

Posted 18/07/2004, 21:28

A historia é longa

Minha host ligou o safe mod! Dai o forum (invision board) nao funciona mais! Fui pedir explicação, me disseram q alguem estava acessando o host e instalando servidores de Diablo 2 pra ficar jogando, pra isso ele ligou o safe mod. Depois eles verificando mais viram q eu usava uma query string que permitia dar acesso as pessoas acessarem as pastas da hosts! sabe-se Deus lá a relação de uma coisa com outra!

Isso pode acontecer? pergunto eu quase morrendo!

A query string que eu uso é essa:

<?php if (isset($page)) { include("$page.php"); }else { include("news.php"); } ?>

links dessa forma: index.php?page=pagina

Edição feita por: jeanmax, 18/07/2004, 21:29.

Nada na assinatura!

#2 luiz000

luiz000

    Expert

  • Banidos
  • PipPipPipPipPipPip
  • 530 posts
  • Sexo:Não informado

Posted 18/07/2004, 21:35

ahco que num tm nd a ver,
pq parece um codigo inocene,
acho que os kra da sua provedora se confundiram...

#3 thiagorsl

thiagorsl

    Ex-admin xD

  • Ex-Admins
  • 1151 posts
  • Sexo:Não informado
  • Localidade:Sampa
  • Interesses:http://sermaldito.amovoce.net/

Posted 18/07/2004, 21:40

hehe sua query é muito fácil de invadir :blink:

Quando você usa include você naum pode listar os arquivos do seu site por exemplo :blink:


entaum de eu colocar no sua url

page=http://www.meusite.com.br/page

ele ira abrir essa page do meu site ela poderá ler seus arquivos e tudo + que eu quiser fazer vocÊ deu sorte que o kra naum quis apagar seu site inteiro :blink:

Use um file_exists que acaba com isso

PHP
<?php
if (isset($page)) {
if(
file_exists("$page.php")){
include(
"$page.php");
} else {
include (
"erro.php");
}
}else {
include(
"news.php");
}
?>



Ai eu crie uma página erro.php que vai mostrar que ocorreu um erro e pronto ;)

#4 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 18/07/2004, 21:51

Um jeito também é você declarar as cases válidas...

PHP
<?php


switch($secao){
case
"apostilas": $url = "apostilas.php"; break;
case
"videos": $url = "videos.php"; break;
}


?>


Para exibiri:

<?php if(isset($url)){ include($url); } else { include("principal.php"); } ?>


Assim é seguro...... (y)
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#5 jeanmax

jeanmax

    Normal

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

Posted 18/07/2004, 22:07

Galera eu nao sabia q akele codigozinho era tao fulera!!! Valeu mesmo ai pessoal!! Valeu a todos!
Nada na assinatura!

#6 AveNoturna

AveNoturna

    Normal

  • Usuários
  • 111 posts
  • Sexo:Não informado
  • Localidade:Brasília - DF

Posted 18/07/2004, 22:08

Um jeito também é você declarar as cases válidas...

PHP
<?php


switch($secao){
case
"apostilas": $url = "apostilas.php"; break;
case
"videos": $url = "videos.php"; break;
}


?>


Para exibiri:

<?php if(isset($url)){ include($url); } else { include("principal.php"); } ?>


Assim é seguro...... (y)

MAs.... nesse caso vc tem que declarar todos os cases válidos? Ou seja page por page?
Vida Longa e Próspera...
E que a força esteja com Vocês!

#7 thiagorsl

thiagorsl

    Ex-admin xD

  • Ex-Admins
  • 1151 posts
  • Sexo:Não informado
  • Localidade:Sampa
  • Interesses:http://sermaldito.amovoce.net/

Posted 18/07/2004, 22:11

Um jeito também é você declarar as cases válidas...

PHP
<?php


switch($secao){
case
"apostilas": $url = "apostilas.php"; break;
case
"videos": $url = "videos.php"; break;
}


?>


Para exibiri:

<?php if(isset($url)){ include($url); } else { include("principal.php"); } ?>


Assim é seguro...... (y)

MAs.... nesse caso vc tem que declarar todos os cases válidos? Ou seja page por page?

sim tem que se declarar case por case :blink:


Esse é o meu jeito de se trabalhar eu naum trabalho com sem com querys do tipo que postei pois sou meio "desconfiado" com esse tipo de coisa entaum eu declaro query por query e naum trabalho com includes ....... code por code dentro do arquivo .... :blink:

Já cheguei fazer 4 subquerystring é muito mais trampo mas é meu jeito de fazer pois naum confio <_<

#8 AveNoturna

AveNoturna

    Normal

  • Usuários
  • 111 posts
  • Sexo:Não informado
  • Localidade:Brasília - DF

Posted 18/07/2004, 22:13

Cara....e como ficaram essas suas subquerystrings?!
Vida Longa e Próspera...
E que a força esteja com Vocês!

#9 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 18/07/2004, 22:17

Mais ou menos, vou tentar explicar... :

Não são muitas páginas, pois tem página que você usa resgatando valores da url ( $_GET ).

Daí um único arquivo é para querys diferentes...
ex: www.meusite.com/?secao=apostilas&id=xxx

PHP
<?php
switch($secao){
case
"secao": $url = "secoes.php"; break;
}
?>


Daí no secoes.php o cara pega o id que está na url com:

$_GET['id']

Daí você já trabalha com os resultados, podendo fazer consulta no mysql por aquele id e mostrar o conteúdo referente ao mesmo... ;)
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#10 AveNoturna

AveNoturna

    Normal

  • Usuários
  • 111 posts
  • Sexo:Não informado
  • Localidade:Brasília - DF

Posted 18/07/2004, 22:19

Isso tah começando a me preocupar!


Eu uso essa query e até hoje nunca me deu problema:

<? if (!$secao) {
include ("principal.php");
} elseif ($secao != "" && !$id) {
if(!file_exists($secao.".php")) { // aqui ele verifica se existe a pagina em php

} else {
include $secao.".php";
}
} elseif ($secao != "" && $id != "") {
include $secao.$id.".php";
}
?>




Será que tem alguma falha de segurança?! Eu não notei ou tive nenhuma reclamação! O que vc acham!?

Edição feita por: AveNoturna, 18/07/2004, 22:19.

Vida Longa e Próspera...
E que a força esteja com Vocês!

#11 luiz000

luiz000

    Expert

  • Banidos
  • PipPipPipPipPipPip
  • 530 posts
  • Sexo:Não informado

Posted 18/07/2004, 22:19

hehe sua query é muito fácil de invadir :blink:

Quando você usa include você naum pode listar os arquivos do seu site por exemplo :blink:


entaum de eu colocar no sua url

page=http://www.meusite.com.br/page

ele ira abrir essa page do meu site ela poderá ler seus arquivos e tudo + que eu quiser fazer vocÊ deu sorte que o kra naum quis apagar seu site inteiro :blink:

Use um file_exists que acaba com isso

PHP
<?php
if (isset($page)) {
  if(file_exists("$page.php")){
include(
"$page.php");
} else {
include (
"erro.php");
}
}else {
include(
"news.php");
}
?>



Ai eu crie uma página erro.php que vai mostrar que ocorreu um erro e pronto ;)

nossa senhora!!!!!
eu tenho um code parecido!!! Sorte que eu uso o file_exists.....
mas nem sabia que tinha esse PORÉM ...
valews thiago... (y)

#12 jeanmax

jeanmax

    Normal

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

Posted 18/07/2004, 22:20

Thiagorsl, mas a primeira q vc me passou ja é segura o bastante pra ninguem deletar ou instalar nada na host ne?
Nada na assinatura!

#13 thiagorsl

thiagorsl

    Ex-admin xD

  • Ex-Admins
  • 1151 posts
  • Sexo:Não informado
  • Localidade:Sampa
  • Interesses:http://sermaldito.amovoce.net/

Posted 18/07/2004, 22:20

Cara....e como ficaram essas suas subquerystrings?!

Mas que extensas :blink:

Mas sem código nenhum é fácil de se visualizar eu trabalhao primeiro montando as query e depois vinha com os códigos


PHP
<?php

$secao
=$_GET['secao'];
$sub=$_GET['acao'];
$passo=$_GET['pas'];
swtich($secao){
case
"artigo":
switch (
$sub){
case
"idx":
default:
//mostra os ultimos
break;
case
"editar":
switch(
$passo){
case
"1":
default:
//mostra o form o form terá como pas=2
break;
case
"2";
//mostra a edição após o form e pedi a confirmação
break;
case
"3":
//insere no banco de dados
break;
}
break;
}
break;
case
"dowloads";
//secao dowloads
break;
}

?>


Isso foi algo simples que fiz agora de exemplo eu trabalho dessa forma comecei agora e mecher com OOP quer dizer estou muito fraco mas ele ajuda bastante a simplificar isso podendo diminuir bastante isso ;)

Eu trabalho assim só que de vez colocar comentário eu coloco echos, pois sendo assim quando coloco o código numa parte e tiver que testar a outra ela irá aparecer ;)

#14 AveNoturna

AveNoturna

    Normal

  • Usuários
  • 111 posts
  • Sexo:Não informado
  • Localidade:Brasília - DF

Posted 18/07/2004, 22:26

Isso tah começando a me preocupar!


Eu uso essa query e até hoje nunca me deu problema:


<? if (!$secao) {
include ("principal.php");
} elseif ($secao != "" && !$id) {
if(!file_exists($secao.".php")) { // aqui ele verifica se existe a pagina em php

} else {
include $secao.".php";
}
} elseif ($secao != "" && $id != "") {
include $secao.$id.".php";
}
?>




Será que tem alguma falha de segurança?! Eu não notei ou tive nenhuma reclamação! O que vc acham!?

E ai o que vc acham....tem ou não alguma falha de segurança!?
Vida Longa e Próspera...
E que a força esteja com Vocês!

#15 thiagorsl

thiagorsl

    Ex-admin xD

  • Ex-Admins
  • 1151 posts
  • Sexo:Não informado
  • Localidade:Sampa
  • Interesses:http://sermaldito.amovoce.net/

Posted 18/07/2004, 22:34

Isso tah começando a me preocupar!


Eu uso essa query e até hoje nunca me deu problema:


<? if (!$secao) {
include ("principal.php");
} elseif ($secao != "" && !$id) {
if(!file_exists($secao.".php")) { // aqui ele verifica se existe a pagina em php

} else {
include $secao.".php";
}
} elseif ($secao != "" && $id != "") {
include $secao.$id.".php";
}
?>




Será que tem alguma falha de segurança?! Eu não notei ou tive nenhuma reclamação! O que vc acham!?

Sim a sua está boa sim pois ele vai verificar se o arquivo existe usando file_exists ou seja como o file_exists nuam funciona com arquivos remotos (fora do servidor) naum há perigo .........

O perigo é se tiver um arquivo em pastas ou subpastas que possa causar naum poderiam ser executados por qualuqer se o kra descobrir o nome mas isso é algo impossível teria que ser alguém que tem acesso ao seus arquivos e dai fazer isso mas se tiver acesso deleta logo pelo ftp para que esse trabalho :P


Thiagorsl, mas a primeira q vc me passou ja é segura o bastante pra ninguem deletar ou instalar nada na host ne?


Sim a naum ser como disse acima que tenha arquivos em seu host maliciosos e como o kra já teve acesso recomendo que olhe os arquivos pois ele pode ter colocado algo dentro da sua pasta para poder executar e poder voltar a ativa ;)




1 user(s) are reading this topic

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

IPB Skin By Virteq