Ate hoje tinha um sistema rodando bem, o sistema funciona assim, cada usuário tem seu login e senha para ter acesso a diretórios diferentes do domínio, mas fazendo teste percebi que depois de fazer o login, é possível mudar o caminho acima, que terá acesso ao diretório de outro usuário exemplo:
www.meusite/manogaucho/usuario/user01 entraria com login e senha, teria acesso a paginas e conteúdo do diretório, então vem a bronca, se modificar para www.meusite/manogaucho/usuario/user02 entraria no diretório sem usar a senha do usuário, descobrir fazendo testes, não sei se algum usuário sabe, mas é bom mudar para ficar melhor.
Assim não daria para proteger por .htaccess ,pois teria que ser por banco de dados mysql , o sistema já tá rodando o usuário pode alterar dados como senha , nome , e-mail o único problema é ter esse acesso aos diretórios depois que se logou com seus dados.
<?
session_start();
//Dados para conexão com o MySQL
$host = "xxxxxxxxx"; //Servidor
$user = "xxxxxxxxxxxxx"; //Usuário
$pass = "xxxxxxxxx"; //Senha
$bd = "xxxxxxxxxxx"; //Base de Dados
//Não mexa!!!
mysql_connect($host, $user, $pass);
mysql_select_db($bd);
//Configuração
$site = "Paginas Restritas"; //Nome do site
$url = "manogaucho/usuario/user01"; //Pasta onde está o script sem "/" no final
$pger = "proibido.php"; //Página que receberá os redirecionamentos de páginas restritas se não logadas
$pgsc = "logado.php"; //Página que receberá o redirecionamento quando logado
$cprg = "<font size=4>Bom Dia</font>";
?>
login.php
<?
include("./config.php");
$l = $_POST['l'];
$s = $_POST['s'];
//$s = md5(md5(md5(md5($s))));
$sql = mysql_query("SELECT * FROM vendedor WHERE usuario='$_POST[l]' AND senha='$s' AND product_code = 01"); // para logar somente o usuario com product_code = 01
//para outros diretoriso uso product_code = 02..product_code = 03 e assim por diante
$cnt = @mysql_num_rows($sql);
if($cnt >= 1){
$_SESSION['usuario'] = $l;
header("Location: ".$url."/".$pgsc);
} else {
header("Location: ".$url."/index.php?erro=Login ou senha incorretos");
}
echo $cprg;
?>
Você não tem autorização para ver está página!
<a href="java script: history.go(-1);"><<--Voltar</a>
logado.php
<?
include("privado.php"); ?>
Esta é a página que você está logado: <?=$_SESSION['login'];?>
Para sair clique <a href="<?=$url?>/logout.php">aqui</a>.
<?php
header("Location: conteudo.php");
exit();
?>
Uso em cada pagina para ser protegida
<?
include("privado.php");
?>
pagina teste conteudo.php
<?
include("privado.php");
?>
Bem Vindo
Tabela
CREATE TABLE IF NOT EXISTS `vendedor` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`usuario` text NOT NULL,
`senha` text NOT NULL,
`nome` text NOT NULL,
`fornecedor` text NOT NULL,
`email` text NOT NULL,
`tel` text NOT NULL,
`link` text NOT NULL,
`product_code` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=45;
Pergunta
manogaucho
Tudo bem!
Ate hoje tinha um sistema rodando bem, o sistema funciona assim, cada usuário tem seu login e senha para ter acesso a diretórios diferentes do domínio, mas fazendo teste percebi que depois de fazer o login, é possível mudar o caminho acima, que terá acesso ao diretório de outro usuário exemplo:
www.meusite/manogaucho/usuario/user01 entraria com login e senha, teria acesso a paginas e conteúdo do diretório, então vem a bronca, se modificar para www.meusite/manogaucho/usuario/user02 entraria no diretório sem usar a senha do usuário, descobrir fazendo testes, não sei se algum usuário sabe, mas é bom mudar para ficar melhor.
Assim não daria para proteger por .htaccess ,pois teria que ser por banco de dados mysql , o sistema já tá rodando o usuário pode alterar dados como senha , nome , e-mail o único problema é ter esse acesso aos diretórios depois que se logou com seus dados.
formulario index.php
config.php login.php<? include("./config.php"); $l = $_POST['l']; $s = $_POST['s']; //$s = md5(md5(md5(md5($s)))); $sql = mysql_query("SELECT * FROM vendedor WHERE usuario='$_POST[l]' AND senha='$s' AND product_code = 01"); // para logar somente o usuario com product_code = 01 //para outros diretoriso uso product_code = 02..product_code = 03 e assim por diante $cnt = @mysql_num_rows($sql); if($cnt >= 1){ $_SESSION['usuario'] = $l; header("Location: ".$url."/".$pgsc); } else { header("Location: ".$url."/index.php?erro=Login ou senha incorretos"); } echo $cprg; ?>privado.php<? include("config.php"); if(!empty($_SESSION['usuario'])){}else{ header("Location: ".$url."/".$pger); } ?>proibido.php logado.php<? include("privado.php"); ?> Esta é a página que você está logado: <?=$_SESSION['login'];?> Para sair clique <a href="<?=$url?>/logout.php">aqui</a>. <?php header("Location: conteudo.php"); exit(); ?>Uso em cada pagina para ser protegida<? include("privado.php"); ?>pagina teste conteudo.php<? include("privado.php"); ?> Bem VindoTabelaObrigado! Espero que este material ajude.
Editado por manogauchoLink para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.