byfreak 0 Denunciar post Postado Fevereiro 9, 2005 Pessoalsãooooooooooooooooo!!Criei este tópico para que possamos debater mais sobre a segurança nos scripts....Não sei nada sobre isto, mas quero aprender....Se der até que este fique como fixo, pois isto é importante....Que este tópico sirva para por idéias e soluções aos programas criados, desde formuláios com BD até coisas e aplicações complexas....Dicas de como dispor a estrutura, os arquivos, contra invasões...sei lá...coisas diversas....Já que as grandes equipes têm equipes com pessoas só destinadas à segurança de seus sites!! Podemos nós tb fazer nossos códigos mais seguros!!É isso, que todos coperem! Compartilhar este post Link para o post Compartilhar em outros sites
Cerrito 0 Denunciar post Postado Fevereiro 9, 2005 Bom se esse tópico tiver aceitação eu penduro ele enquanto tivermos movimento nele ...abraçosMarcio Compartilhar este post Link para o post Compartilhar em outros sites
C4wb!z!nh0 0 Denunciar post Postado Fevereiro 9, 2005 Eu não sei muita segurança em script, php, mas eu uso um serviço que a SCAN dá http://www.scan.com.br, ela monitora o seu site. Quando o seu site fica fora do ar ela avisa por e-mail, quando volta também e ainda possui um Sistema Anti-Hacker muito interessante. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
jonas_ti 0 Denunciar post Postado Fevereiro 9, 2005 IMPEDINDO INJEÇÕES SQL... Existe um grande problema em formulários html que depois de postados executam uma consulta ao banco de dados: PHP [/tr][tr]<? echo "<form action=\"login.php\">"; echo "E-Mail <input type=\"text\" name=\"mail\"><br>"; echo "<input type=\"submit\" value=\"Acessar\">"; echo "</form>"; ?> [/tr] Pois então, no login.php poderiamos ter o seguinte código, um exemplo muito simples: PHP [/tr][tr]<? $sql = "SELECT * FROM tabela WHERE email = '".$mail."'; //... ?> [/tr] O problema está em como utilizamos essa string sql. Mas como funcionaria uma injeção sql??? Veja: Se no form onde você deve digitar e-mail para acessar a área restrita se digitar : ' or 1=1 --Com absoluta certeza você estará logado!!! Mas por que??Veja: A string sql ficaria assim: "SELECT * FROM tabela WHERE email = '' or 1=1 --'"Onde oque pode-se notar é que o sql seria interpretado assim: "Seleciona-se tudo da tabela "tabela" onde a coluna email é igual a vazio '' ou 1=1 " comentando-se o resto do sql com "--", como 1=1 é verdadeiro, ele se loga no sistema!! Mas como resolver isso??? PHP [/tr][tr]<? $sql = "SELECT * FROM tabela WHERE email = '".addslashes($mail)."'; //... ?> [/tr] Basta usar a função addslashes do php que trata dos caracteres especiais, ou seja, se você digitar ' or 1=1 -- ele vai montar a string sql dessa maneira: "SELECT * FROM tabela WHERE email = '\' or 1=1 --"Dessa forma, a interpretação da string sql seria assim: "Seleciona-se tudo da tabela "tabela onde a coluna email é igual a '\' or 1=1 --'", ou seja, a injeção sql se tornou uma string, esse sql retornaria false e o hacker não teria acesso ao sistema!!! Espero ter colaborado!! Compartilhar este post Link para o post Compartilhar em outros sites
fast 0 Denunciar post Postado Fevereiro 10, 2005 eh... sql injection eh famosão... mas tem outra coisa tb.. includes... muita gente quando eh novata no php somente pra deixar a pagina bonitinha.. coloca um código do tipo: PHP [/tr][tr]$pagina = $GET['page']; include($pagina"); [/tr] daí vem qualquer pessoa má intencionada.. e carrega qualquer tipo de script malicioso no servidor (dependendo do servidor dah pra ter acesso a muita coisa por causa de um simples erro do 'programador').. pra resolver eh simples.. soh usar if ou switch pras opções possíveis.. PHP [/tr][tr]$pagina = GET['page']; if ($pagina == "home"){ include ("home.php"); } elseif ($pagina == "blabla") { include ("blabla.php"); } [/tr] simples, mas eu sempre vejo esse 'erro' por aí.. Compartilhar este post Link para o post Compartilhar em outros sites
Keitaro 0 Denunciar post Postado Fevereiro 10, 2005 ae.. no devshed tem um topico sobre isso, q fala as segurancas mais basicas q todo programador deve saber.. vale a pena http://forums.devshed.com/t20525/s.html Compartilhar este post Link para o post Compartilhar em outros sites
byfreak 0 Denunciar post Postado Fevereiro 11, 2005 aí fast...desculpa, mas...eu não entendi mtu bem o que você quis dizer....ao invés de só utilizar os includes po um if ou switch...pq??? Compartilhar este post Link para o post Compartilhar em outros sites
fast 0 Denunciar post Postado Fevereiro 13, 2005 aí fast... desculpa, mas... eu não entendi mtu bem o que você quis dizer.... ao invés de só utilizar os includes po um if ou switch...pq??? pq? você sabe o q o include faz neh? ele pega o código da pagina (include('pagina.php')) e executa ele.. ateh aí tudo bem.. daí você chega lah e faz uma pagina assim: PHP [/tr][tr]$pagina = $_GET['page']; include ($pagina); [/tr] (um exemplo bem simples.. hehe).. mas tudo bem.. funciona tranquilo se você colocar lah.. index.php?page=jogos.htm por exemplo.. vai incluir a pagina jogos.htm q tah na mesma pasta... soh q daí chega a pessoa mal intencionada.. e coloca na url index.php?page=http://www.site.com/script.php e dentro desse script em php (principalmente se o server for linux)... ele poderá usar comandos do tipo exec() ou shell_exec() entre outros.. podendo fazer o q quizer no servidor.. concorda? intaum.. eh isso.. pq se ele usar o IF por exemplo... PHP [/tr][tr]$pagina = GET['page']; if ($pagina == "home"){ include ("home.php"); } elseif ($pagina == "blabla") { include ("blabla.php"); } [/tr] e a pessoa digitar lah na url denovo.. index.php?page=http://www.site.com/script.php o q q vai acontecer? nada.. hehe.. =) deu pra entender agora? Compartilhar este post Link para o post Compartilhar em outros sites
JasonX 0 Denunciar post Postado Fevereiro 13, 2005 EAeeee caros amigos do PHP aproveitando que estao falante aeee de includes, vou passar um pouco do que conheco tambem. Assim todo mundo quando começa a trabalhar com includes coloca la o nome do include que faz a conexao com o DB como include "conexao.inc" Vamos supor que você esta colocando todo o seu codigo inclusive os includes na pasta /home Tenta digitar por exemplo assim http://endereco_da_pagina/home/conexao.inc. Vai aparecer tudo !!!!!!!!!!! sua senha e login do DB um prato feito para o invasor Tipo coloquem seus includes numa pasta nao muito comum tipo /bin ou /inc um nome nao comum para ser descoberto. E coloca os nomes dos includes um pouco diferentes tb tipo um include que faz conexao com DB como include "conecta_db_.inc" Ou si quiser coloca o include como extensao .php caso o invasor descubra o include ele nao vai ver o codigo pois o PHP é uma linguagem que roda no servidor trazendo para o browser somente uma pagina em branco. Valeus !!!! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Fevereiro 13, 2005 Outra coisa importante tbm é fazer um bom sistema de login que valida cada pagina visitada e ant sql injection e php injection e ja vi pessoas fazerem um sistema de login ate bom mas depois mata tudo validando errado exemplo: o cara entra e loga e se ele tiver com os dados ok o cara seta uma variavel tipo logado = true , isso matou o login pois apartir dai basta digitar no url um logado=true que aceita e ficou inutil o sistema de login, isso é só um exemplo ja vi outros casos semelhantes onde o cara deixa o cara logado entrar da maneira errada é que nem encher a casa de fechaduras e travas mas deixar as chaves debaixo do tapete :D principais regras de segurança é sempre ter a ultima versao do php, mysql,etc... tirando a versao do php5 que é outra historia, pois no caso do php tem muita gente que usa versoes antigas e ate o php 4.1.7 descobriram uma falha de segurança e corrigiram no php 4.1.8 e tem pessoas que ainda usam o php 4.0 ou o 3 Compartilhar este post Link para o post Compartilhar em outros sites
byfreak 0 Denunciar post Postado Fevereiro 13, 2005 vlw fast...nunca tinha me ligado qto a isso....mas ae pessoal vamos postar mais!!! Compartilhar este post Link para o post Compartilhar em outros sites
stview 0 Denunciar post Postado Maio 4, 2005 O que seria o php injection? Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Maio 4, 2005 PHP injection é o assunto que eu falei no ultimo modulo do curso de php da uma olhada Compartilhar este post Link para o post Compartilhar em outros sites
Senshi 0 Denunciar post Postado Maio 4, 2005 Ai... tb quero dar a minha contrribuição... em relação aos includes, eu utilizo apenas um if da seguinte maneira: PHP [*] [*]if (!file_exists($pagina)) $pagina='index.php'; [*] Se houver falha me avisem, mas até hj funcionou... SENSHI... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Maio 4, 2005 a questao nao é se funciona ou nao , é ver se tem brechas e se da pra enganar o seu sistema Compartilhar este post Link para o post Compartilhar em outros sites
Senshi 0 Denunciar post Postado Maio 4, 2005 é isso que eu quis dizer... nunca foi burlado, até onde eu saiba. mas se alguém achar alguma brecha dessa forma, posta aí para eu me reformular.... SENSHI http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites