Ir para conteúdo
Fórum Script Brasil

bruno_osprimosbh

Membros
  • Total de itens

    6
  • Registro em

  • Última visita

Sobre bruno_osprimosbh

bruno_osprimosbh's Achievements

0

Reputação

  1. legal então. Agradeço a atenção e ajuda pessoal Grato.
  2. Verdade viu, havia me esquecido deste detalhe.... Refazendo parte do código ficaria assim então la no arquivo UsuarioController.php ... $adm = new Administrador(); $adm->loadAdm(); //Depois de ter tratado o dado via post uso a criptografia md5 if($login == $adm->getUsuario() && md5($senha) == $adm->getSenha()){ $_SESSION['idSession'] = (int)$adm->getId(); $_SESSION['nomeSession'] = $adm->getNome(); $_SESSION['loginSession'] = $adm->getUsuario(); $_SESSION['senhaSession'] = $adm->getSenha(); $_SESSION['emailSession'] = $adm->getEmail(); $_SESSION['nivel_acessoSession'] = $adm->getNivelAcesso; header('Location: ../View/logado.php'); ... Então, dos artigos que vi, sempre ocorre a verificação do usuário direto na query por exemplo: // consultando se o usuário enviou a senha correta $query = sprintf("SELECT 1 FROM users WHERE name='%s' AND pwd='%s';", pg_escape_string($username), md5($password)); $result = pg_query($connection, $query); Achei que a forma que estava fazendo estava errada e com a segurança baixa... No entanto, testei o sql injection OR 1=1 e pelo menos isso aí ele barrou... :) Mais dicas ou esta bom assim?
  3. Boa tarde pessoal, sou novo em programação PHP e gostaria de dicas e criticas construtivas sobre um simples sistema de login que criei... Se tratando de segurança pensei que trabalhando com classes e OO ficaria melhor, algo do tipo: o usuario ao clicar no botao entrar ele chamará uma classe controle que vai instanciar um novo objeto do tipo usuario e chamar o metodo para carregar os dados do mesmo do banco e armazenar nos atributos, depois faço a comparação dos dados vindos pelo post com os dados dos atributos da instancia criada. É correto? é seguro? lembrando que antes de criar o objetos passei os dados vindos pelo post por metodos como get_magic_quotes_gpc(), mysql_real_escape_string e trin().... Gostaria de dicas para melhor isso aê... Grato pela atenção;; Abaixo deixo os código que julgo serem importantes para analise... Arquivo Usuario.Controller.php <?php session_start(); require_once '../Model/Conexao.class.php'; require_once '../Model/Administrador.class.php'; require_once '../Model/Function.class.php'; //extract($_POST); if(getenv("REQUEST_METHOD") == "POST"){ $con = new Conexao(); $function = new Funcao(); $login = isset($_POST["login"]) ? $function->limpaString($_POST["login"]) : ""; $senha = isset($_POST["senha"]) ? $function->limpaString($_POST["senha"]) : ""; $login = $function->antiSqlInjection($login); $senha = $function->antiSqlInjection($senha); //Acho que esse if aqui é desnecessário if(!empty($login)|| !empty($senha)){ $adm = new Administrador(); $adm->loadAdm(); if($login == $adm->getUsuario() && $senha == $adm->getSenha()){ $_SESSION['idSession'] = (int)$adm->getId(); $_SESSION['nomeSession'] = $adm->getNome(); $_SESSION['loginSession'] = $adm->getUsuario(); $_SESSION['senhaSession'] = $adm->getSenha(); $_SESSION['emailSession'] = $adm->getEmail(); $_SESSION['nivel_acessoSession'] = $adm->getNivelAcesso; header('Location: ../View/logado.php'); } else{ unset($_SESSION['loginSession']); unset($_SESSION['senhaSession']); header('Location: ../login.php'); } } } else{ header('Location: ../login.php'); } ?> Arquivo Administrador.class.php <?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * Description of Usuario * * @author VIRTUALWEB */ class Administrador{ //put your code here private $id; private $nome; private $senha; private $usuario; private $email; private $tabela = 'tb_administrador'; private $nivelAcesso; public function __construct(){ require_once 'Conexao.class.php'; } public function setId($id){ $this->id = $id; } public function getId(){ return $this->id; } public function setNome($nome){ $this->nome = $nome; } public function getNome(){ $this->nome; } public function setSenha($senha){ $this->senha = $senha; } public function getSenha(){ return $this->senha; } public function setUsuario($usuario){ $this->usuario = $usuario; } public function getUsuario(){ return $this->usuario; } public function setEmail($email){ $this->email = $email; } public function getEmail(){ return $this->email; } public function setabela($tabela){ $this->tabela = $tabela; } public function gettabela(){ return $this->tabela; } public function setNivelAcesso($nivelAcesso){ $this->nivelAcesso = $nivelAcesso; } public function getNivelAcesso(){ return $this->nivelAcesso; } public function loadAdm(){ $con = new Conexao(); $con->open(); $sql = "SELECT * FROM tb_administrador "; $limite = mysql_query($sql); while($sql = mysql_fetch_array($limite)){ $this->id = $sql["id"]; $this->nome = $sql["nome"]; $this->usuario = $sql["login"]; $this->senha = $sql["senha"]; $this->email = $sql["email"]; $this->nivelAcesso = $sql["nivel_acesso"]; } } } ?> Arquivo Function.class.php <?php class Funcao { public function mask($val, $mask){ $maskared = ''; $k = 0; for($i = 0; $i<=strlen($mask)-1; $i++){ if($mask[$i] == '#'){ if(isset($val[$k])) $maskared .= $val[$k++]; } else{ if(isset($mask[$i])) $maskared .= $mask[$i]; } } return $maskared; } public function limpaString($string){ $novaString = trim($string); $novaString = addslashes($novaString); return $novaString; } public function antiSqlInjection($str) { if(!is_numeric($str)) { $str = get_magic_quotes_gpc() ? stripslashes($str) : $str; $str = function_exists('mysql_real_escape_string') ? mysql_real_escape_string($str) : mysql_escape_string($str); return $str; } else{ $str = ""; return $str; } } } ?>
  4. Boa tarde caros do fórum, estou desenvolvendo um sistema de busca em c# com arquivos, trabalho de PA, para a faculdade valendo um bocado de pontos. Estou precisando do esclarecimento de uma dúvida simples Criei uma classe, um novo documento chamado ClassHabiltaDesabilitaBotoes Nesta classe criei dois métodos um para habilitar e outro para desabilitar os botões do form principal. Segue abaixo => ClassHabilitaDesabilitaBotoes class ClassHabilitaDesabilitaBotoes { /// <summary> /// Objeto utilizado para ter acesso aos componetes /// do form pricipal, estancio o mesmo como null /// </summary> private frmPrincipal objFrmPrincipal = null; /// <summary> /// Construtora da classe, recebe como parâmetro o form Principal /// </summary> /// <param name="principal"></param> public ClassHabilitaDesabilitaBotoes(frmPrincipal principal) { this.objFrmPrincipal = principal; } /// <summary> /// Método para desabilitar componentes do form Principal /// </summary> public void DesabilitaBotoes() { objFrmPrincipal.btnVisualizarAruivos.Enabled = false; objFrmPrincipal.btnPesquisar.Enabled = false; objFrmPrincipal.groupBox5.Enabled = false; objFrmPrincipal.gboxOperadorLogico.Enabled = false; objFrmPrincipal.groupBox4.Enabled = false; objFrmPrincipal.gboxTermopesquisa.Enabled = false; } /// <summary> /// Método para habilitar componentes do form Principal /// </summary> public void HabilitaBotoes() { objFrmPrincipal.btnVisualizarAruivos.Enabled = true; objFrmPrincipal.groupBox5.Enabled = true; objFrmPrincipal.groupBox4.Enabled = true; if (objFrmPrincipal.btnVisualizarAruivos.Enabled == true) { objFrmPrincipal.btnPesquisar.Enabled = true; objFrmPrincipal.btnPesquisar.Enabled = true; objFrmPrincipal.gboxOperadorLogico.Enabled = true; objFrmPrincipal.gboxTermopesquisa.Enabled = true; } } } Minha dúvida é como estanciar esta classe no meu form principal? Fiz de 2 formas e deu erro => FrmPrincipal // Estância da classe Metodos /// <summary> /// Crio um objeto da Classe Habilita e Desabilita Botoes para poder utilizar /// seus métodos /// </summary> ClassHabilitaDesabilitaBotoes objClassHabilitaDesabilitaBotoes = new ClassHabilitaDesabilitaBotoes(); consigo fazer a chamada normalmente da seguinte forma: objClassHabilitaDesabilitaBotoes.DesabilitaBotoes(); Porém na construtora da minha classe eu passo meu parêmetro do tipo FrmPrincipal, logo a minha chamada ao metodo da classe da erro porque não forneci nenhum parametro para a construtora. Como posso resolver isso???? Que paremetro posso passar na chamada do metodo??? tentei passar a FrmPricipal e não deu.... A outra forma que fiz foi estanciar o objHabilitaDesabilitaBotoes como null, sem sucesso também... Podem me ajudar????
  5. Pô pessoal.. me ajudem ai vai... to tentando implementar o sistema mais sem seucesso..
  6. Boa tarde amigos do scriptbrasil, sou novo no forum e calouro em PHP, estou com um pequeno problema em sisteminha de fotos que estou tentando utilizar. Bem o sistema é simplis, somente para aprendizado e funciona perfeitamente porem necessito criar a exclusão das fotos. Será que alguém poderia me ajudar?? segue os codigos abaixo diretorio da galeria de fotos.... PASTA PRINCIAL galeria-> subpasta fotos mais arquivos php. ::: BD CREATE TABLE `galeria` ( `id` int(11) NOT NULL auto_increment, `imagem` varchar(255) default NULL, `legenda` varchar(255) default NULL, PRIMARY KEY (`id`) ) ::: up_img.php / Pagina que contem o form para upload da imagem <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Upload Foto</title> <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" /> </head> <body bgcolor="#000000"> <h2 align="left"><font color="#FFFFFF"></font></h2> <p align="center"><b><font face="Arial" size="4" color="#FFFFFF">GALERIA DE FOTOS</font></b></p> <p align="left"><b><font face="Arial" size="2" color="#FFFFFF"></font></b><font color="#FFFFFF" face="Arial" style="font-size: 9pt"><img border="0" src="images/left_side_arrow.gif" width="4" height="7"> </font><b> <font face="Arial" size="2" color="#FFFFFF">CADASTRAR FOTOS</font></b></p> <center> <form name="up" action="" method="POST" enctype="multipart/form-data"> <font face="Arial" style="font-size: 9pt" color="#FFFFFF">Imagem:</font> <input type="file" name="arquivo" value="" size="56" /><font face="Arial" style="font-size: 9pt"> <font color="#FFFFFF"></font></font></center> </form> <div align="center"> <table border="0" width="97%" cellspacing="0" cellpadding="0" height="34"> <tr> <td> <p align="left"><b><font face="Arial" size="2" color="#FFFFFF"></font></b></p> </td> </tr> <p align="center"><?include 'index.php';?></td> </table> </div> </body> </html> ::: listar.php // pagina onde listo todas as fotos do bd e onde gostaria que aparecesse o link deletar em baixo de cada foto <?php // Conexão com o banco de dados $conn = @mysql_connect("host", "user", "pass") or die ("Problemas na conexão."); $db = @mysql_select_db("banco", $conn) or die ("Problemas na conexão"); // Seleciona todas as fotos $sql = mysql_query("SELECT * FROM galeria ORDER BY id"); while ($galeria = mysql_fetch_object($sql)) { // Exibimos a foto echo "<img src='foto/".$galeria->imagem."' alt='Foto de exibição' /><br />"; // Exibimos a legenda e o id echo "<b>legenda:</b> " . $galeria->legenda . "<br />"; echo "<b>ID:</b> " . $galeria->id . "<br />"; echo"<font face=Verdana, Arial, Helvetica, sans-serif><font size=1><font color=#C0C0C0><b>$id / $imagem</b></font> -- <font size=1><a href=\"deletar.php?id=$id&imagem=$imagem\">Deletar</a></font><br>"; } ?> ::: deletar.php <?php // Conexão com o banco de dados $conn = @mysql_connect("host", "user", "pass") or die ("Problemas na conexão."); $db = @mysql_select_db("banco", $conn) or die ("Problemas na conexão"); $id = $_GET['id']; $selec = "SELECT * FROM galeria WHERE id='$id'"; $exec = mysql_query($selec, $conexao) or die(mysql_error()); while($campos=mysql_fetch_array($exec)) { extract($campos); unlink("foto/$foto"); $query = mysql_query("DELETE FROM galeria WHERE id='$id'"); } ?> Esses são os códigos, como disse, o sistema é simples.. coloquei isso ai pra rodar e tanto a exclusão da foto quanto a exclusao do id não e feita. ao clicar no link deletar sou encaminhado para a pagina deletar.php porem a URL fica assim: http://meusite.com.br/galeria/deletar.php?id=&imagem.... e não me retorna nada nem exclui nada.. acredito que o diretorio colocado no unlink esteja errado e na pagina listar.php no final do codigo onde crio o link que direcionamento para a pagina deletar.php este tambem está errado... e ai alguém poderia me ajudar..rsrs flow aguardo ajuda
×
×
  • Criar Novo...