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

Php E Seguranca


renatodex

Pergunta

Bom gente, estou eu aqui novamente com mais uma das minhas duvidas crueis..

Sabemos que o PHP é uma otima ferramenta para se trabalhar a comunicacao do cliente com o servidor na internet. E eu gerando os meus codigos de validacao de usuario, Log-In, Log-Out, Cadastro, Remocao, Alteracao e Consulta (existem outros que não acho importante citar) me deparei com o seguinte problema:

Como eu vou saber se meus codigos são seguros o bastantes para serem publicados em um dominio posteriormente? Como vou saber se meu site não possui alguma brecha, algo por onde usuarios mal intensionados possa se aproveitar e utilizar o meu site como ferramenta ilegal (hacking).

Bom, sei tambem que para avaliar se um codigo é seguro ou não, vocês precisam visualiza-lo primeiro!! Estou certo? então, postarei alguns deles e quero opinioes sobre algo que eu poderia melhorar, ou uma boa explicacao sobre como evitar furos.

------------------------------------------------------

SELECAO:

<html>
<head>
<title>:: PGU - Programa de Gerenciamento de Usuarios ::</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<p><font face="Arial"><em>Programa de Gerenciamento de Usuarios (PGU) </em></font></p>
<table width="60%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr bgcolor="#CCCCCC"> 
    <td><div align="CENTER"><font color="#3300FF" face="Tahoma">CADASTRAR</font></div></td>
    <td><div align="CENTER"><font color="#3300FF" face="Tahoma">ALTERAR</font></div></td>
  </tr>
  <tr bgcolor="#CCCCCC"> 
    <td><div align="CENTER"><font color="#3300FF" face="Tahoma">REMOVER</font></div></td>
    <td><div align="CENTER"><font color="#3300FF" face="Tahoma">CONSULTAR</font></div></td>
  </tr>
</table>
<hr size="1" color="#009999">
<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr bgcolor="#FFFFCC"> 
    <td><div align="LEFT"><font face="Verdana, Arial">USUARIO</font></div></td>
    <td><div align="LEFT"><font face="Verdana, Arial">SENHA</font></div></td>
    <td><div align="LEFT"><font face="Verdana, Arial">IDADE</font></div></td>
    <td><div align="LEFT"><font face="Verdana, Arial">EMAIL</font></div></td>
  </tr>
  <font face="Tahoma" size="2"> 
<?
mysql_connect("localhost","root","");
mysql_select_db("meusdb");
//para selecionar os dados de uma tabela
$re = mysql_query("SELECT * FROM tbluser");

while($row = mysql_fetch_array($re)) {

echo "<tr bgcolor=#FFFFFF>";
echo "<td><font face=Tahoma size=2>$row[Nome]</font></td>";
echo "<td><font face=Tahoma size=2>$row[Senha]</font></td>";
echo "<td><font face=Tahoma size=2>$row[Idade]</font></td>";
echo "<td><font face=Tahoma size=2>$row[Email]</font></td></tr>";
}
?>
  </font> 
</table>
<p>&nbsp;</p>
</body>
</html>
---------------------------------------------------------------------- CADASTRO:
<html>
<head>
<title>:: PGU - EFETUANDO CADASTRO... ::</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="Refresh" CONTENT="7;URL=index.php">
</head>

<body>
<?

$conectar = mysql_connect("localhost","root","") or die("Erro ao conectar, consulte um tecnico.");
//para inserir os dados em uma tabela

$nome  = $_POST["Login"];
$senha = $_POST["Senha"];
$idade = $_POST["Idade"];
$email = $_POST["Email"];

$re = "INSERT INTO tbluser (Nome, Senha, Idade, Email) VALUES ('$nome', '$senha', '$idade', '$email')"; 
mysql_db_query("meusdb", "$re", $conectar) or die("Erro ao cadastrar, consulte um tecnico ou contate o administrador.");
?>
<font size="4" face="Tahoma">PARABENS, VOCE AGORA PERTENCE A SOCIEDADE PGU!!!<br>
VOCE SERA REDIRECIONADO EM ALGUNS SEGUNDOS...</font> 
</body>
</html>

---------------------------------------

SE POSSIVEL ME AJUDEM PESSOAL, é UMA QUESTAO DE HONRA ELABORAR ROTINAS ESSENCIALMENTE SEGURAS PARA OS USUARIOS VOCES não ACHAM?

Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0

não envie os dados direto pro banco trate eles antes de gravar

estude sobre essas funções:

addslashes

htmlspecialchars

strip_tags

md5

outra coisa importante também é você tratar os includes

se você usa includes para incluir paginas ,e não souber usar fica facil injetar um codigo malisioso no seu site

ate mais

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

valeu gente!! já consertei os erros do meu script!!

E mais uma coisa, tipu, esse negocio do include q você falou, como funnciona, eu não entendi bem, me explica melhor!! Se eu tratar as informacoes q chegam do formulario meu site estara 100% seguro (substituindo tags html, encriptando senha com MD5, tratando as strings em geral)??

Link para o comentário
Compartilhar em outros sites

  • 0

Aí Renato,

Postei um tópico dia 28 de outubro, a umas duas páginas a fretne que fala de include, que foi uma dica de segurança que deram.

O tópico é :

  Trabalhando Com Include. (Páginas 1 2 )

Está dando erro de include_path.

Dê uma olhada, se precisar de ajuda é só postar.

Muito bom esse seu tópico, deu para ter uma ampliada nos elementos a serem trabalhados para aumentar a segurança. wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Exemplo 1. Exemplo strip_tags()

<?php

$string = strip_tags($string, '<a><b><i><u>');

?>

Atenção

Esta função não modifica nenhum dos atributos das tags que você permitiu usando allowable_tags, incluindo os atributos style e onmouseover que um usuário travesso pode abusar quando colocar texto a ser mostrado para os outros usuários.

COM RELAÇÃO A STRIP_TAGS:

O que o Manual quer dizer quando fala "incluindo os atriburos style e onmouseover que um usuário travesso pode abusar quando colocar texto a ser mostrado para os outros usuários"?

Link para o comentário
Compartilhar em outros sites

  • 0

Certo, entendi. Mas e se eu colocar aqueles parâmetros (allowable_tags), como no exemplo do Manual:

strip_tags($texto, '<b><u><i>');

Aqui ele vai tirar as tags html com exceção de bold, underline e itálico. Até aí tudo bem. Entretanto, ele atenta para o seguinte:

Atenção

Esta função não modifica nenhum dos atributos das tags que você permitiu usando allowable_tags, incluindo os atributos style e onmouseover que um usuário travesso pode abusar quando colocar texto a ser mostrado para os outros usuários.

Incluindo os atributos style e onmouseover? Ah, será que ele quer dizer, caso eu coloque esses parâmetros também para que possam ser usados?

Seria que as vezes um usuário coloca um texto assim:

<font size="7" color="ff0000">EU DE NOVO!!!</font>

No exemplo acima, a strip_tag() não permitiria que o texto ficasse em vermelho tamanho '7'?

Caso eu queira liberar css e onmouseover, eu colocaria assim:

strip_tags($texto, 'css onmouseover');

Está certo esse exemplo?

Link para o comentário
Compartilhar em outros sites

  • 0

ele retira todas as tags html e php com ecessao das que você deixar e ele ta falando disso:

atributos das tags que você permitiu usando allowable_tags

faça os testes ai e você vai vendo como funciona

use strip_tags e tente ver se passa as tags html e style

Link para o comentário
Compartilhar em outros sites

  • 0

Farei esses testes. wink.gif

Para terminar minhas dúvidas deste post, não ficou muito claro para mim a função md5().

Eu li o link do Manual mas está um pouco confuso para mim. Essa é uma função de criptografia?

Como seria um exemplo do uso do md5()?

Link para o comentário
Compartilhar em outros sites

  • 0

md5 é um sistema de criptogração e ele cria uma nova string com 32 caracteres

independente do tamanho da string

exemplo :

md5("fabyo");//resultado = 843549c42962986b547932d7eee60be7

e não tem função do php pra desfazer o efeito do md5 mas tem como desfazer o md5

Link para o comentário
Compartilhar em outros sites

  • 0

Continuando seu exemplo, digamos que "fabyo" seja a sua senha enviada por um sistema de login.

Então teriamos:

$senha_md5 = md5($senha);

Essa nova variável "$senha_md5" é que ficaria guardada no servidor, ou seja, aquela string de 32 caracteres? smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Legal mesmo Fabyo!

Você está me dando a maior força e estou começando a raciocinar em php.

Essa é uma das maravilhas que a internet possibilita, as comunidades e todo mundo se ajudando mutuamente.

Com certeza isso tudo acaba sendo retribuido. "Fazer o bem, sem olhar a quem...." Admiro muito os moderadores do fórum. Legal que a gente também se envolve e ajuda a outros.

No fórum do DW eu procuro retribuir isso. Certamente mais para a frente será aqui também. smile.gif

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,6k
×
×
  • Criar Novo...