Ir para conteúdo
Fórum Script Brasil
  • 0

[AJUDA] Proteção Login e Senha Diretório


manogaucho

Pergunta

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

<form method="POST" action="<?=$url;?>/login.php">
Usu&aacute;rio: 
  <input type="text" size="20" name="l"><BR>
Senha: <input type="password" size="20" name="s"><BR>
<input type="submit" value="Entrar"><BR>
</form>
config.php
<?
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;
?>
privado.php
<?
include("config.php");
if(!empty($_SESSION['usuario'])){}else{
header("Location: ".$url."/".$pger);
}
?>
proibido.php
Você não tem autorização para ver está página!
<a href="java script: history.go(-1);">&lt;&lt;--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;

Obrigado! Espero que este material ajude.

Editado por manogaucho
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Boa noite... cara muito interessante, estou desenvolvendo um sistema tentando chegar exatamente nisso acessar diretorios diferentes com o nome do usuario. Pode ver meu tópico logo abaixo com uma duvida na criação do dir.

Esse seu sistema é comercial e privado, ou voce pode passar os fontes?

Estou tentando chegar em algo assim mas estou tendo dificuldade não entendo muito de php.

Caso não for possivel não tem problema eu entendo.

Abraços

Lenzi

Link para o comentário
Compartilhar em outros sites

  • 0
Boa noite... cara muito interessante, estou desenvolvendo um sistema tentando chegar exatamente nisso acessar diretorios diferentes com o nome do usuario. Pode ver meu tópico logo abaixo com uma duvida na criação do dir.

Esse seu sistema é comercial e privado, ou voce pode passar os fontes?

Estou tentando chegar em algo assim mas estou tendo dificuldade não entendo muito de php.

Caso não for possivel não tem problema eu entendo.

Abraços

Lenzi

Boa Noite! Tb sou novato, vou ver o que posso te passar dos codigo, pois o sistema é utilizado em uma empresa. Mas estamos ai, um ajudando o outro. Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Você pode salvar no banco o nome do diretório que o usuário terá acesso, e quando for exibir alguma página verifique se ela está dentro da pasta permitida. Essa função tem que ser chamada em todos os arquivos...

Link para o comentário
Compartilhar em outros sites

  • 0

Entendi o problema que ocorre, e vejo outros também: caso o usuário user01 acesse do seu browser: www.meusite/manogaucho/usuario/user02 vai aparecer a lista de arquivos, o que poderia ser sanado colocando por exemplo um arquivo do tipo index.htm vazio ou que redirecione para a pasta do usuário user01.

Mas isso não impede o USER01 de tentar acessar o diretorio do USER02 e ficar tentando nomes de arquivos aleatórios até conseguir algum resultado. Dessa forma acredito que o sistema é muito falho.

A solução, acredito eu, é incrementar as permissões de pastas de arquivo quando se cria o novo diretório no servidor ou alguma solução tipo FTP.

Não sei que tipos de arquivos que serão armazenados, mas poderia também arquivar tudo em banco de dados. Assim o acesso seria somente aos arquivos do usuário que fez o logon.

Arquivo do tipo TEXTO poderiam ser arquivados completamente em tabelas com campos TEXT, ou até mesmo fotos confidenciais gravadas em Banco de Dados.

Alguma outra sugestão?

Link para o comentário
Compartilhar em outros sites

  • 0
Entendi o problema que ocorre, e vejo outros também: caso o usuário user01 acesse do seu browser: www.meusite/manogaucho/usuario/user02 vai aparecer a lista de arquivos, o que poderia ser sanado colocando por exemplo um arquivo do tipo index.htm vazio ou que redirecione para a pasta do usuário user01.

Mas isso não impede o USER01 de tentar acessar o diretorio do USER02 e ficar tentando nomes de arquivos aleatórios até conseguir algum resultado. Dessa forma acredito que o sistema é muito falho.

A solução, acredito eu, é incrementar as permissões de pastas de arquivo quando se cria o novo diretório no servidor ou alguma solução tipo FTP.

Não sei que tipos de arquivos que serão armazenados, mas poderia também arquivar tudo em banco de dados. Assim o acesso seria somente aos arquivos do usuário que fez o logon.

Arquivo do tipo TEXTO poderiam ser arquivados completamente em tabelas com campos TEXT, ou até mesmo fotos confidenciais gravadas em Banco de Dados.

Alguma outra sugestão?

Muito Obrigado pelas dicas... Vou pensar e analizar melhor... Valeu !

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...